停止异步 ISearchJob 的正确方法

2024-02-23

我要使用WUA API https://msdn.microsoft.com/en-us/library/windows/desktop/aa387099(v=vs.85).aspx并以这种方式开始执行异步搜索更新:

CComPtr<SearchCallbackImpl> iscc_; <<-- Note you need to CreateInstance
CComPtr<ISearchJob> pUpJob_;
pUpJob_ = NULL;

pUpSearcher_->BeginSearch(
        CComVariant(criteria.c_str()).bstrVal,
        iscc_,
        CComVariant(L"Scanning"),
        &pUpJob_);

当我需要停止我的程序时,但是我搜索工作 https://msdn.microsoft.com/en-us/library/windows/desktop/aa386070(v=vs.85).aspx还没有完成,我使用这段代码:

if (pUpJob_)
{
    CComVariant isStopped;
    pUpJob_->get_IsCompleted(&isStopped.boolVal);
    if (isStopped.boolVal == VARIANT_FALSE)
    {
        if (SUCCEEDED(pUpJob_->RequestAbort()))
        {
            pUpJob_->CleanUp();
            pUpJob_.Release();
        }
    }
}

一般来说,这段代码可以工作,但有时它会挂起pUpJob_->CleanUp();而且我没有能力正确停止我的程序。

所以我的问题是:

  1. 正确的停车方法是什么异步搜索更新作业 https://msdn.microsoft.com/en-us/library/windows/desktop/aa386070(v=vs.85).aspx?
  2. 我也误解了两者之间的区别ISearchJob::清理 https://msdn.microsoft.com/en-us/library/windows/desktop/aa386072(v=vs.85).aspx and ISearchJob::请求中止 https://msdn.microsoft.com/en-us/library/windows/desktop/aa386076(v=vs.85).aspx以及如何使用此方法正确停止异步搜索?
  3. 这些方法应该一起使用还是单独使用?

RequestAbort()也是异步的(名称中暗示了这一点)。调用后,你应该调用pUpSearcher_->EndSearch();它将返回一个 ISearchResultResultCode等于orcAborted如果堕胎成功。Then你可以释放你的资源。

我不完全确定如何CleanUp()应该使用,但是这一页 https://msdn.microsoft.com/en-us/library/windows/desktop/aa385820(v=vs.85).aspx似乎暗示它适用于具有回调的脚本,并且您不应该调用CleanUp()从回调中。不确定您的取消代码在哪里运行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

停止异步 ISearchJob 的正确方法 的相关文章

随机推荐

  • Rails 3 SQLite3 布尔值 false

    我试图在 SQLite3 表中插入一个假布尔值 但它总是插入一个真值 这是我的迁移 class CreateUsers lt ActiveRecord Migration def self up create table users do
  • 通过 IMain 获取 scala repl 内的类型信息

    Intent I am 试图添加 https groups google com forum fromgroups topic scala internals DdSg qxOvyo支持 kind命令到scala questions tag
  • Xcode 警告:指定的输入编码是 Unicode (UTF-8),但文件内容显示为 Unicode (UTF-16);视为 Unicode (UTF-16)

    我使用以下命令创建 strings 文件genstrings命令 该命令的输出文件使用 UTF 16 编码 但是当我将生成的 strings 文件添加到我的项目中然后 bild 时 Xcode 显示警告 指定的输入编码为 Unicode U
  • express.Router() 返回未定义

    我正在尝试设置一个在我的 node js HTTP 服务器上运行的 REST API 对于常规调用 我希望路径是 对于 API 调用 我想使用 API 根据我从各个网页收集到的信息 包括http expressjs com guide ro
  • 将图像添加到表格单元格 (iOS)

    我正在尝试做一些类似于 Twitter 或 Facebook 的事情 UITableViewCell tableView UITableView tableView cellForRowAtIndexPath NSIndexPath ind
  • 如何使用 Java (J2SE) 创建 QRCode

    如何使用普通j2se创建QRcode图像 有任何 API 或类可以用来执行此操作吗 为此 您需要下载以下 jar zxing core 1 7 jar zxing javase 1 7 jar from http code google c
  • 有没有办法在for循环中添加多个条件?

    n int raw input enter the number of mcnuggets you want to buy total number of mcnuggets you want yo buy for a in range 1
  • JS 字符串:替换为正则表达式中的索引

    我对正则表达式几乎没有经验 我想知道如何替换由正则表达式标识的字符串中的部分 其中索引是标识部分的一部分 这是我的示例字符串 let exampleStr How do I 0 the n with the 1 in my array 这是
  • 启用 nginx 分块传输编码

    看起来像nginx 0 8 35 可能支持分块传输编码 http nginx org en CHANGES 2010 年 4 月 1 日 nginx 0 8 35 的变化 Change now the charset filter runs
  • 项目参考与文件参考?

    可以通过两种方式在项目中添加引用 项目参考 文件参考 但是 什么时候使用 Project 什么时候使用 File 引用 您没有指定 但我猜您指的是 Visual Studio 项目引用和文件引用之间的主要区别在于是否提供实时更新 在项目参考
  • SASS中有多行吗? [复制]

    这个问题在这里已经有答案了 我无法从 SASS 文档中弄清楚这一点 例如我想使用带有 5 个参数的 Compass mixin link colors normal hover false active false visited fals
  • 如何在Meteor服务器中获取用户IP地址?

    我想在我的流星应用程序中的服务器端获取用户IP地址 以便我可以用一堆东西记录IP地址 例如 订阅邮件列表的非注册用户 或者只是做任何事情 重要的 我知道 当涉及反向代理时 服务器 看到 的 IP 地址可能与真实源地址不同 在这种情况下 X
  • MYSQL 中的规范化

    MySQL 中的规范化是什么 在什么情况下以及如何使用它 我尝试在这里用外行术语来解释标准化 首先 它适用于关系数据库 Oracle Access MySQL 因此它不仅仅适用于 MySQL 规范化是为了确保每个表具有唯一的最小字段并消除依
  • uint32_t 与 int 作为日常编程的约定

    什么时候应该使用 stdint h 中的数据类型 总是使用它们作为惯例是正确的吗 像 int 和 Short 这样的非特定大小类型的设计目的是什么 什么时候应该使用 stdint h 中的数据类型 当编程任务指定整数宽度时 特别是为了适应某
  • 在 Facebook 等 iOS 应用程序中预览嵌入链接

    我正在尝试以与 Facebook 相同的方式在 iOS 应用程序中嵌入链接预览 我正在尝试找到一种方法来获取最合适的图像 并返回其 url 页面标题 甚至可能是元描述并将其传递回应用程序 但我不确定最好的方法 有一些 API 可以做到这一点
  • 在 Tkinter 中拖放?

    在 tkinter 中完成拖放的正确 官方 正确 推荐的方法是什么 我的文档第 24 1 1 节包括 Tkdnd 对 Tkinter 的拖放支持 这是实验性的并且 当它被 Tk DND 取代时 它应该被弃用 但我找不到其他的official
  • 正则表达式仅允许数字或空字符串

    有人可以帮我创建这个正则表达式吗 我需要它来检查字符串是否完全是空白 空 或者是否只包含正整数 如果还有其他事情 那就失败了 这是我到目前为止所拥有的 s 0 9 0 9 您正在寻找 s d 如果您想要一个不带前导零的正数 请使用 1 9
  • 如何使用 Expo EAS 为 React Native 中的 组件启用动画 webp?

    使用 Expo EAS 构建时 动画 gif 在 Android 中可以工作 但动画 webp awebp 则不能 Why 如何让 awebp 工作 为什么 gif 动画可以用 但它却不起作用 React Native 有动画图像支持多种格
  • IntelliJ IDEA 和 Gradle:为什么每个子模块有 3 个模块?

    我对 IntelliJ IDEA 的 gradle 集成以及 gradle 子项目到 IDEA 模块的映射感到相当困惑 为什么每个 gradle 子项目都有 3 个模块 client client main 和 client test 有没
  • 停止异步 ISearchJob 的正确方法

    我要使用WUA API https msdn microsoft com en us library windows desktop aa387099 v vs 85 aspx并以这种方式开始执行异步搜索更新 CComPtr