질문이 꽤 명확하지 않지만 확률이 높아서 IBackgroundCopyJob :: Complete()를 호출하는 것을 잊어 버리는 경우가 많습니다. BITS가 전송 결과를 얻었음을 알 때까지 파일 전송이 완료되지 않습니다. 90 일 이내에 Complete() 또는 Cancel()을 호출하지 않으면 임시 파일이 삭제됩니다.
IBackgroundCopyJob :: GetState()를 호출하여 전송 상태를 폴링 할 수 있지만 그다지 실용적이지 않습니다. IBackgroundCopyJob :: SetNotifyInterface를 호출하여 전송이 완료되었거나 실패했음을 알리는 콜백을 요청할 수 있습니다. 그러나 이는 전송이 완료되기 전에, 특히 서버가 오프라인 상태이거나 다른 방식으로 점유되어있는 경우에는 시간이 오래 걸릴 수 있습니다. 이를 수행하는 좋은 방법은 완료시 프로그램을 실행하도록 BITS에 요청하는 것입니다. IBackgroundCopyJob2 :: SetNotifyCmdLine()을 사용하십시오. jobID를 전달하기 위해 명령 행 인수를 사용하여 작업에 대한 인터페이스 포인터를 다시 얻을 수 있습니다. 이렇게하면 재부팅이나 지진과 같은 거친 작업에서도 전송이 유지됩니다.