正在完成和取消作業

若要完成傳輸作業,請呼叫 IBackgroundCopyJob::Complete 方法。 針對下載作業,您可以在 作業中的所有檔案都傳輸之前呼叫 Complete 方法(在作業的狀態BG_JOB_STATE_TRANSFERRED之前)。 在您呼叫 Complete 方法之前,只有 BITS 成功傳送到用戶端的檔案可供使用者使用。

針對上傳作業,只有在作業的狀態為BG_JOB_STATE_TRANSFERRED時,才呼叫 Complete 方法。 若要判斷作業的狀態何時BG_JOB_STATE_TRANSFERRED, 請輪詢 作業的狀態屬性或註冊以接收BG_NOTIFY_JOB_TRANSFERRED 事件通知

若要取消傳輸作業,請呼叫 IBackgroundCopyJob::Cancel 方法。 Cancel 方法會從傳輸佇列中移除作業,並從用戶端移除暫存盤。 通常,如果您無法解決與作業相關聯的錯誤,請呼叫這個方法。

如果上傳未完成,Cancel 方法會取消上傳。 如果上傳完成,且作業的類型為 BG_JOB_TYPE_UPLOAD_REPLY,則方法會取消回復。

如果您未在 90 天內呼叫 Complete 方法或 IBackgroundCopyJob::Cancel 方法(預設 JobInactivityTimeout 組策略),服務會取消作業。 如果服務取消作業,則下載的檔案和回復檔案無法供用戶端使用;作業取消不會影響已成功上傳的檔案。 您應該一律呼叫 CompleteCancel 方法,而不依賴 JobInactivityTimeout 原則來清除您的作業。 如果達到 MaxJobsPerUser 或 MaxJobsPerMachine 原則限制,佇列中留下的作業可能會防止使用者建立其他作業。