Concluindo e cancelando um trabalho
Para concluir um trabalho de transferência, utilize o método IBackgroundCopyJob::Complete. Para trabalhos de download, você pode chamar o método Complete antes que todos os arquivos no trabalho tenham sido transferidos (antes que o estado do trabalho seja BG_JOB_STATE_TRANSFERRED). Somente os arquivos que o BITS transferiu com êxito para o cliente antes de você chamar o método Complete estão disponíveis para o usuário.
Para trabalhos de upload, chame o método Complete somente se o estado do trabalho for BG_JOB_STATE_TRANSFERRED. Para determinar quando o estado do trabalho é BG_JOB_STATE_TRANSFERRED, sonde a propriedade de estado do trabalho ou registre para receber a notificação de evento BG_NOTIFY_JOB_TRANSFERRED .
Para cancelar um trabalho de transferência, chame o método IBackgroundCopyJob::Cancel. O método Cancel remove o trabalho da fila de transferência e remove os arquivos temporários do cliente. Normalmente, você chama esse método se não conseguir resolver um erro associado ao trabalho.
O método Cancelar cancela um carregamento se o carregamento não estiver concluído. Se o carregamento estiver concluído e o trabalho for do tipo BG_JOB_TYPE_UPLOAD_REPLY, o método cancelará a resposta.
Se você não chamar o método Complete ou o método IBackgroundCopyJob::Cancel dentro de 90 dias (padrão JobInactivityTimeout Diretiva de Grupo), o serviço cancelará o trabalho. Se o serviço cancelar o trabalho, os arquivos baixados e o arquivo de resposta não estarão disponíveis para o cliente; O cancelamento do trabalho não afeta os arquivos que foram carregados com êxito. Deverás sempre chamar o método Completo ou Cancelar e não confiar na política JobInactivityTimeout para limpar as tuas tarefas. Os trabalhos deixados na fila podem impedir que os usuários criem outros trabalhos se o limite definido pelas políticas MaxJobsPerUser ou MaxJobsPerMachine for atingido.