【发布时间】:2013-08-12 22:03:41
【问题描述】:
QueueUserAPC 最接近的 .NET 替代方案是什么?我应该使用SynchronizationContext.Post 吗?
【问题讨论】:
-
QUA 的工作水平要低得多。但当然,同样的想法。
-
你想做什么? APC 有效地“接管”处于可变状态的线程——将其(暂时)从其他潜在的待处理工作中转移。 .NET 中没有任何东西专门这样做。
-
@Peter,在这种情况下,我只是想更好地了解 Win32 和 .NET 之间的 API 映射。以前我使用 QueueUserAPC 来安排一些分析任务。
-
我不会说 QueueUserAPC 真的映射到 .NET 中的任何东西。如果您只是想异步运行代码,我建议您使用
Task和 Task` 和/或 async/await。 -
我相信 Monitor 会等待警报,因此您可以继续使用 QUA。也就是说,在随机点劫持线程以做其他事情似乎是一种糟糕的架构。我从来不明白 QUA 有什么好处。似乎总是一个糟糕的解决方案。
标签: .net api winapi asynchronous synchronization