gpt4 book ai didi

winapi - 有没有办法丢弃APC队列?

转载 作者:行者123 更新时间:2023-12-02 09:42:48 25 4
gpt4 key购买 nike

我使用 QueueUserAPC() 函数将异步过程调用添加到线程的 APC 队列中。

假设我已经将 10 个线程调用排队,并且在线程进入 SleepEx() 后执行其中一个调用时,由于某种原因我决定不执行下一个 APC。我对这个问题的原始而简单的解决方案是用 if block 包装所有调用,检查全局变量,并仅在设置(或未设置)此条件变量时才执行该 block 。

有更好的方法吗?我可以丢弃线程的APC队列,这样排队的其他调用就不会被调用吗?

最佳答案

没有用户模式方法可以从 APC 队列中删除项目。 (您可以在内核模式下,但即使在内核模式下,也只能在拆卸情况下从 APC 队列中删除项目。)在任何情况下,QueueUserAPC 都不会返回您可以取消的可用句柄,并且完全刷新队列是一个坏主意,因为其他代码可能已将您不知道的项目放入队列中。

关于winapi - 有没有办法丢弃APC队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21603250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com