【发布时间】:2014-01-05 19:42:27
【问题描述】:
我有下面的代码,它是一个新线程的开始。 BeginWork 函数通过一系列具有大量异常处理的函数。如果线程组.interrupt_all();调用单个函数将处理中断,这会导致线程保留在其循环中而不会被正确中断。如何更改错误处理以解决此类异常并模仿行为,就好像初始循环的外部 try catch 块捕获了线程中断异常一样?我在想可能会捕捉到时间中断的异常并将一个布尔值设置为真,在主循环中检查它,如果它设置为真则中断。
void ThreadWorker(int intThread)
{
try
{
int X = 0;
do
{
cout << "Thread " << intThread << "\n";
BeginWork();
}
while (true);
}
catch(...)
{
cout << "Thread: " << intThread << " Interrupted.";
}
}
【问题讨论】:
标签: c++ multithreading boost