Share via


비동기 WUA 작업에 대한 지침

이 항목에서는 WUA(비동기 Windows 업데이트 에이전트) 작업을 수행할 때 다음에 대한 지침을 식별합니다.

  • 비동기 WUA 작업은 특정 완료 속도를 보장하지 않습니다. 비동기 WUA 작업의 완료 시간은 컴퓨터 하드웨어, 운영 체제 버전 및 네트워크 구성에 따라 크게 달라질 수 있습니다. 네트워크 종속성이 있고 시간 제한 매개 변수 또는 문서화된 시간 제한 기간을 포함하지 않는 다른 Windows API와 마찬가지로, 응답 시간이 보장되어야 하는 경우 사용자 고유의 시간 제한 메커니즘을 구현하는 것이 좋습니다. 예를 들어 비동기 WUA 메서드를 호출하고 비동기 WUA 작업이 완료될 때 이벤트 또는 다른 동기화 개체를 설정하는 작업자 스레드를 만들 수 있습니다. 그런 다음 기본 스레드는 WaitForSingleObject 또는 WaitForMultipleObjects 함수를 사용하여 제한 시간 값을 지정할 수 있습니다.
  • 업데이트 검색, 다운로드, 설치 또는 제거를 종료하면 모든 스레드에서 IUpdateSearcher::EndSearch, IUpdateDowloader::EndDownload, IUpdateInstaller::EndInstall IUpdateInstaller::EndUninstall을 사용할 수 있습니다.
  • IUpdateSearcher::BeginSearch, IUpdateDownloader::BeginDownload, IUpdateInstaller::BeginInstall 및 IUpdateInstaller::BeginUninstall을 사용하여 업데이트의 검색, 다운로드, 설치 또는 제거를 시작할 때 WUA API 개체에 대한 참조를 해제할 때 충분한 액세스 권한을 기본 있는지 확인합니다.
    • 비동기 작업에 사용되는 콜백 개체는 삭제하기 전에 참조되지 않는지 확인합니다. 콜백 개체의 참조 수가 초기 값으로 돌아갈 때까지 기다렸다가 삭제합니다.
    • 해당 Begin 메서드에서 반환되는 작업 개체에 대한 참조는 콜백 개체와 다른 개체에 의해 제어되어야 합니다. 순환 참조를 방지하려면 콜백 개체와 다른 개체를 사용합니다.
    • 콜백 개체를 사용하여 작업 개체에 대한 참조를 제어하려는 경우 콜백 함수 외부에서 IDownloadJob::CleanUp, IInstallationJob::CleanUp 또는 ISearchJob::CleanUp 메서드를 호출하여 콜백 개체에서 작업 개체의 연결을 끊어야 합니다. Begin 메서드에서 반환하는 작업 개체에 대한 참조를 해제하기 전에 이 작업을 수행해야 합니다.
  • 비동기 WUA 작업이 완료되었는지 확인합니다. WUA API에 콜백 개체에 대한 참조가 여전히 있는 경우에도 함수 외부의 모든 명령이 완료되면 Windows 스크립트 호스트에서 스크립트를 종료할 수 있습니다.
    • CleanUp 메서드 중 하나를 사용하거나 콜백 함수가 완료 시 공유 전역 변수를 설정하도록 합니다.
    • 콜백 함수의 작업 개체에서 IDownloadJob::CleanUp, IInstallationJob::CleanUp 또는 ISearchJob::CleanUp을 호출하지 않습니다.
    • Windows Internet Explorer에서 실행되는 스크립트에서 올바른 클린 업 시퀀스를 확인하려면 window.onbeforeunload를 처리할 때 모든 작업 개체에서 CleanUp 메서드를 호출합니다.
  • 비동기 WUA 작업에는 UDT(사용자 정의 데이터 형식)를 사용하지 마세요. 형식은 IUpdateSearcher::BeginSearch, IUpdateDownloader::BeginDownload, IUpdateInstaller::BeginInstall 또는 IUpdateInstaller::BeginUninstall에서 지원되지 않습니다.