Completamento e annullamento di un processo
Per completare un processo di trasferimento, chiamare il metodo IBackgroundCopyJob::Complete . Per i processi di download, è possibile chiamare il metodo Complete prima che tutti i file nel processo siano stati trasferiti (prima che lo stato del processo sia BG_JOB_STATE_TRANSFERRED). Solo i file che BITS sono stati trasferiti correttamente al client prima di chiamare il metodo Complete sono disponibili per l'utente.
Per i processi di caricamento, chiamare il metodo Complete solo se lo stato del processo è BG_JOB_STATE_TRANSFERRED. Per determinare quando lo stato del processo è BG_JOB_STATE_TRANSFERRED, eseguire il polling della proprietà di stato del processo o registrarsi per ricevere BG_NOTIFY_JOB_TRANSFERRED notifica degli eventi.
Per annullare un processo di trasferimento, chiamare il metodo IBackgroundCopyJob::Cancel . Il metodo Cancel rimuove il processo dalla coda di trasferimento e rimuove i file temporanei dal client. In genere, si chiama questo metodo se non è possibile risolvere un errore associato al processo.
Il metodo Cancel annulla un caricamento se il caricamento non è completo. Se il caricamento è completo e il processo è di tipo BG_JOB_TYPE_UPLOAD_REPLY, il metodo annulla la risposta.
Se non si chiama il metodo Complete o il metodo IBackgroundCopyJob::Cancel entro 90 giorni (criterio di gruppo JobInactivityTimeout predefinito), il servizio annulla il processo. Se il servizio annulla il processo, i file scaricati e il file di risposta non sono disponibili per il client; L'annullamento del processo non influisce sui file caricati correttamente. È consigliabile chiamare sempre il metodo Complete o Cancel e non basarsi sul criterio JobInactivityTimeout per pulire i processi. I processi lasciati nella coda possono impedire agli utenti di creare altri processi se viene raggiunto il limite di criteri MaxJobsPerUser o MaxJobsPerMachine.