![]() |
1
4
我建议使用
你真的只有两个选择。一:实现自己的事件解复用器(由于64句柄等待限制,这比看起来要复杂得多);我不能推荐这样做-我不得不做一次(在非托管代码中),而且很可怕。
剩下的第二个选择是:发出取消任务的信号。当然,
要考虑的一个主要问题是比赛条件。请记住,在取消操作和线程池执行操作之间存在竞争条件,因此可以看到操作在取消之后运行。
我有
a blog post on this concept
,我称之为“异步回调上下文”。这个
|
![]() |
2
3
编辑
话虽如此,斯蒂芬的建议
|
![]() |
3
1
线程池的存在是为了帮助您管理线程。您完全不必担心清除它,因为它将代表您做出最佳性能决策。 如果您认为需要对线程进行更严格的控制,那么您可以考虑创建自己的线程管理类(类似于ThreadPool),但要匹配和超越ThreadPool内置的功能需要做大量的工作。 a look here 在一些线程池优化和背后的想法。 an article on Code Project 它实现了一个“可取消的线程池”,可能是出于某些类似的原因。如果你打算自己写的话,这是一个开始寻找的好地方。 |
![]() |
RoddyRott · 如何监视AWS中的线程 7 年前 |
|
John · 非阻塞http客户端与使用独立线程池的阻塞http客户端 7 年前 |
![]() |
Yomal · 在java中,如何知道线程池的任务何时结束 7 年前 |
![]() |
Hymir · 用于挂起线程的C++线程池 7 年前 |
![]() |
WeInThis · Python-将线程转换为多处理 7 年前 |