1

実行時に例外をキャッチしたスレッドのスタック トレースを出力できます。同じプロセス内で実行されている他のスレッドのトレースも出力する必要があります。例外が 1 つのスレッドでキャッチされるとすぐに、すべてのスレッドをフリーズする良い方法を見つけることに興味があります。

今のところ、私ができることは、アクティブなスレッドごとにクエリを実行し、それに対して SuspendThread() を実行することだけです。ただし、これにより、最初の例外がキャッチされた後、各スレッドの実行時間が少し長くなります。すべてのスレッドを即座に中断させる方法はありますか?

ありがとう。

4

1 に答える 1

2

例外がキャッチされたワーカースレッドからGUIスレッドにPostMessage()を使用しようとしましたか?

提案された簡単な手順:
1)GUIスレッドが少数のワーカースレッドを生成します
2)ワーカースレッドPostMessage()が例外をキャッチすると
3)GUIスレッドがメッセージを受信します
4)GUIスレッドが残りのワーカースレッドに一時停止するように指示します

注:独自のメッセージを定義する

このようにすると、ワーカースレッドを一時停止する前に多少の遅延が発生します。

別の方法は、ワーカースレッド間でイベントハンドルのような同期オブジェクトを使用することです。

于 2012-04-05T03:52:36.203 に答える