Как отказаться от IUpdateSearcher::BeginSearch

Я собираюсь перечислить не установленные обновления с агентом обновления Windows. И у меня есть один вопрос. Это способ отменить / остановить метод BeginSearch (процесс поиска). Я пытался остановить процесс поиска с помощью EndSearch, но это не останавливает его. Благодарю.

1 ответ

Решение

IUpdateSearcher::EndSearch() ждет, пока поиск завершится первым. Вы можете явно запросить остановку поиска, предварительно позвонив ISearchJob::RequestAbort() на ISearchJob вы получаете от IUpdateSearcher::BeginSearch(), После этого ISearchResults вернулся из EndSearch() должен иметь ResultCode из orcAbortedи вы должны быть в безопасности, просто выпустив его. (Вы все равно должны позвонить EndSearch()потому что операция прерывания все еще асинхронна, как намекает имя "запрос отмены".)

Другие вопросы по тегам