0

私のアプリケーションでは、スレッドはboost :: thread::interruptで中断できます。割り込みスレッドを再利用したいのですが、boost :: Interrupted_exceptionをキャッチできますか、それともイデオロギー的に正しくありませんか?

4

1 に答える 1

2

インタラプトスレッドを再利用したい

あなたができるように見えます(強調が追加されました):

boost :: thread_interruptedは通常の例外であるため、他の例外と同様にキャッチできます。これが、例外がスローされたときに「割り込み」フラグがクリアされる理由です。スレッドが割り込みをキャッチして処理する場合は、再度割り込みを行うことはまったく問題ありません。これは、たとえば、一連の独立したタスクを処理しているワーカースレッドの場合に使用できます。現在のタスクが中断された場合、ワーカーは中断を処理してタスクを破棄し、次のタスクに移動できます。中断されます。また、スレッドが例外をキャッチし、エラーコードを返す、モジュールの境界を通過するように例外を変換するなど、他の手段で終了することもできます。

于 2012-09-07T06:38:24.130 に答える