ISearchJob->Release() 卡住

ISearchJob->Release() stucking

我正在使用 wuapi 查找 Windows 更新。我遇到了问题:pJob->Release(); 在某些机器上卡在以下代码中,但通常它工作正常。这种行为的原因可能是什么?

我已尝试将 ISearchJob* 更改为 CComPtr 并删除 pJob->Release();,但问题并没有消失。在这种情况下,程序卡在函数的末尾。

        ISearchResult* pWUResult = NULL;
        ISearchJob* pJob = NULL;
        VARIANT pVar = { 0 };
        ISCC completeCB;
        hr = pWUSearcher->BeginSearch( bstrCriteria, &completeCB, pVar, &pJob );

        if ( SUCCEEDED(hr) )
        {
            WaitForSingleObject( completeCB._Event, INFINITE );

            hr = pWUSearcher->EndSearch( pJob, &pWUResult );
            pJob->Release();
        }

正如@JonathanPotter 在评论中建议的那样,使用 pJob->CleanUp() 而不是 pJob->Release() 解决了这个问题。