Compartir a través de


Finalización y cancelación de un trabajo

Para completar un trabajo de transferencia, llame al método IBackgroundCopyJob::Complete . Para los trabajos de descarga, puede llamar al método Complete antes de que todos los archivos del trabajo se hayan transferido (antes de que el estado del trabajo sea BG_JOB_STATE_TRANSFERRED). Solo los archivos que BITS transfirió correctamente al cliente antes de llamar al método Complete están disponibles para el usuario.

Para los trabajos de carga, llame al método Complete solo si el estado del trabajo es BG_JOB_STATE_TRANSFERRED. Para determinar cuándo se BG_JOB_STATE_TRANSFERRED el estado del trabajo, sondee la propiedad de estado del trabajo o regístrese para recibir BG_NOTIFY_JOB_TRANSFERRED notificación de eventos.

Para cancelar un trabajo de transferencia, llame al método IBackgroundCopyJob::Cancel . El método Cancel quita el trabajo de la cola de transferencia y quita los archivos temporales del cliente. Normalmente, se llama a este método si no puede resolver un error asociado al trabajo.

El método Cancel cancela una carga si la carga no está completa. Si la carga está completa y el trabajo es de tipo BG_JOB_TYPE_UPLOAD_REPLY, el método cancela la respuesta.

Si no llama al método Complete o al método IBackgroundCopyJob::Cancel en un plazo de 90 días (jobInactivityTimeout predeterminado directiva de grupo), el servicio cancela el trabajo. Si el servicio cancela el trabajo, los archivos descargados y el archivo de respuesta no están disponibles para el cliente; la cancelación del trabajo no afecta a los archivos que se han cargado correctamente. Siempre debe llamar al método Complete o Cancel y no confiar en la directiva JobInactivityTimeout para limpiar los trabajos. Los trabajos dejados en la cola pueden impedir que los usuarios creen otros trabajos si se alcanza el límite de directivas MaxJobsPerUser o MaxJobsPerMachine.