主要问题:
考虑到QueueUserWorkItem和TrySubmitThreadpoolCallback都将工作项排队到线程池,这两者之间有什么区别?
TrySubmitThreadpoolCallback
此函数将一个工作项添加到线程池的队列中(通过调用PostQueuedCompletionStatus),如果成功则返回TRUE;如果不成功,则返回FALSE。在某些情况下,例如缺少内存或配额限制,对TrySubmitThreadpoolCallback的调用可能会失败。每次调用TrySubmitThreadpoolCallback时,都会代表您在内部分配工作项。
参考资料:https://www.amazon.com.br/Windows-Via-C-Jeffrey-Richter/dp/0735663777
QueueUserWorkItem
当线程处于活动状态时,
在执行方法时排队执行该方法。
参考资料:https://www.macoratti.net/09/06/vb_patp.htm
据我所知,这两个函数所做的事情是完全相同的,这种差异是与兼容性有关还是类似于这些方面?
若否,两者有何分别?
此外,如果答案是否定的,我希望在可能的情况下具体说明每一个问题的特点。
等一下!
如果我的问题是不完整的,或者是不恰当的格式,请评论,以便我可以调整它,谢谢您提前,提前。
卢卡斯P.
发布于 2022-09-29 21:02:01
QueueUserWorkItem来自遗留线程池API。更新的函数允许您(通过InitializeThreadpoolEnvironment)初始化回调环境,从而对执行回调的环境提供更多的控制。根据我的经验,当MS开始称某物为“遗留”并且我有选择时,我发现通常最好使用非“遗留”的API。
https://stackoverflow.com/questions/73900921
复制相似问题