Завершение и отмена задания
Чтобы завершить задание передачи, вызовите метод 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.