我喜欢 C# CancellationTokenSource
,它允许我终止Task
如本文所示。
取消的类似算法是boost::thread
什么?我不想“杀死”或“终止”线程。相反,我想“请求”完成任务。然后我需要等到任务完成。
我喜欢 C# CancellationTokenSource
,它允许我终止Task
如本文所示。
取消的类似算法是boost::thread
什么?我不想“杀死”或“终止”线程。相反,我想“请求”完成任务。然后我需要等到任务完成。
你可以使用boost线程中断
可以通过调用相应boost::thread对象的 interrupt() 成员函数来中断正在运行的线程。当被中断的线程下一次执行指定的中断点之一(或者如果它当前在执行一个中断时被阻塞)并启用中断,那么将在被中断的线程中抛出 boost::thread_interrupted 异常。如果没有被捕获,这将导致被中断线程的执行终止。与任何其他异常一样,堆栈将被展开,并且将执行自动存储持续时间的对象的析构函数。