メッセージをスレッドから他のすべてのスレッドにバブリングして適切に終了する方法について、いくつかの情報源を読んだことがあります(すべてのスレッドは独自の出口ルーチンを実行します)。これらのうち、私はどのスレッドからもフラグを立てることができるグローバルアトミックブール値のアイデアが好きで、他のすべてのスレッドはこのフラグをチェックして出口ルーチンを実行します - すべてのスレッドが結合されると、メインスレッドはアプリケーションを終了できます。マルチスレッドアプリケーションからの効率的な終了
純粋に計算スレッドは、おそらく異なった方法で処理されるでしょうか?
これは効率的かつ安全ですか?これを行うより良い方法はありますか?
ありがとうございます!
はスマートに聞こえるが、私はそれを読むたびに「これはあまりにもハッキリ」と感じることができない。 – Necrolis
それは移植性がないと認めるだろうが、他のほとんどのソリューションでは、あなたのスレッドで使用できるコード。私はネットワーキングのためにスレッドを頻繁に使い、安全に「停止」できるサードパーティのネットワーキングライブラリ(Indyなど)が必要です。 – Roddy
私はまだそれを把握していない、より詳細な説明から。スレッド内で終了するときにQueueUserAPCを使用すると、例外をスローする関数が呼び出され、この例外はすべてのスレッドに届きます。デストラクタはどのように呼び出され、例外をスローする関数はどのように見えますか? (プログラミングのこの全領域は私には新しいものです)ありがとう! – oneminute