【问题标题】:How to discard IUpdateSearcher::BeginSearch如何丢弃 IUpdateSearcher::BeginSearch
【发布时间】:2016-09-01 15:58:39
【问题描述】:

我将使用Windows Update Agent 列举未安装的更新。我有一个问题。这是一种丢弃/停止BeginSearch 方法(搜索过程)的方法。我试图用EndSearch 停止搜索过程,但它并没有停止它。谢谢。

【问题讨论】:

  • 你怎么知道 EndSearch 不会停止搜索?发生什么了? EndSearch 返回什么?
  • EndSearch 不返回。程序在 EndSearch 上停止并等待处理完成。这是正确的行为吗?
  • 鉴于您从中获得了 ISearchResults,我认为答案是肯定的;查看 ISearchJob::RequestAbort()? (首先调用它,然后是 EndSearch(),然后释放 ISearchResults,因为它应该只给你一个 orcAborted 的 ResultCode... 按照文档的超链接 =P)
  • 谢谢伙计。这就是我需要的!!!

标签: c++ winapi interface com wuapi


【解决方案1】:

IUpdateSearcher::EndSearch() 等待搜索首先完成。您可以通过首先在从IUpdateSearcher::BeginSearch() 获得的ISearchJob 上调用ISearchJob::RequestAbort() 来明确请求提前停止搜索。这样做之后,从EndSearch() 返回的ISearchResults 应该有一个ResultCodeorcAborted,你应该安全地释放它。 (您仍然应该调用EndSearch(),因为中止操作仍然是异步的,正如名称“请求中止”所暗示的那样。)

【讨论】:

    猜你喜欢
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 2010-12-09
    • 1970-01-01
    相关资源
    最近更新 更多