1
我有下面的代碼是新線程的開始。 BeginWork函數執行一系列具有繁重異常處理的函數。如果threadgroup.interrupt_all();被稱爲單個函數將處理中斷,並且這導致線程保持在它的循環中而不被正確中斷。我怎樣才能改變我的錯誤處理來解釋這種類型的異常,並像模仿intial循環的外部try catch catch塊捕獲線程中斷異常那樣模仿行爲?我想也許趕上時間interupt的例外,並設置一個布爾值爲true,這是在主循環中檢查,並打破它是否設置爲true。正確的方法來捕獲提升線程中斷和退出線程
void ThreadWorker(int intThread)
{
try
{
int X = 0;
do
{
cout << "Thread " << intThread << "\n";
BeginWork();
}
while (true);
}
catch(...)
{
cout << "Thread: " << intThread << " Interrupted.";
}
}