Завершение и отмена задания
Чтобы завершить задание передачи, вызовите метод IBackgroundCopyJob::Complete. Для загрузки заданий можно вызвать метод Complete до того, как все файлы в задании будут переданы (до состояния BG_JOB_STATE_TRANSFERRED). Пользователю доступны только те файлы, которые BITS успешно передали клиенту перед вызовом метода Complete.
Для заданий отправки вызовите метод Complete, только если состояние задания BG_JOB_STATE_TRANSFERRED. Чтобы определить, когда состояние задания BG_JOB_STATE_TRANSFERRED, опрос свойству состояния задания или регистрации для получения BG_NOTIFY_JOB_TRANSFERRED уведомления о событиях.
Чтобы отменить задание передачи, вызовите метод IBackgroundCopyJob::Cancel. Метод Cancel удаляет задание из очереди передачи и удаляет временные файлы клиента. Как правило, этот метод вызывается, если не удается устранить ошибку, связанную с заданием.
Метод Cancel отменяет отправку, если отправка не завершена. Если отправка завершена, а задание имеет тип BG_JOB_TYPE_UPLOAD_REPLY, метод отменяет ответ.
Если вы не вызовете метод Complete или метод IBackgroundCopyJob::Cancel в течение 90 дней (согласно групповым политикам по умолчанию JobInactivityTimeout), служба отменит задание. Если служба отменяет задание, скачанные файлы и файл ответа недоступны клиенту; Отмена задания не влияет на файлы, которые были успешно отправлены. Всегда следует вызывать метод Complete или метод Cancel, а не использовать политику JobInactivityTimeout для управления неактивными заданиями. Задания, оставшиеся в очереди, могут препятствовать созданию других заданий, если достигнуто ограничение политики MaxJobsPerUser или MaxJobsPerMachine.