2

私は、この記事に示されているようCancellationTokenSourceに終了できるC#が好きです。Task

キャンセルの同様のアルゴリズムは何でしょうboost::threadか? スレッドを「強制終了」または「終了」したくありません。代わりに、タスクを「リクエスト」して終了させたいのです。次に、タスクが完了するまで待つ必要があります。

4

1 に答える 1

0

ブーストスレッド割り込みを使用できます

実行中のスレッドは、対応するboost::threadオブジェクトの interrupt() メンバー関数を呼び出すことによって中断できます。中断されたスレッドが次に指定された中断ポイントの 1 つを実行するとき (または、中断を有効にして現在ブロックされている場合)、中断されたスレッドで boost::thread_interrupted 例外がスローされます。キャッチされない場合、中断されたスレッドの実行が終了します。他の例外と同様に、スタックは巻き戻され、自動保存期間のオブジェクトのデストラクタが実行されます。

于 2013-09-25T20:38:30.960 に答える