1

おそらく悪いパターンだと言わざるを得ませんが、私のサンドボックスでは、ボタンをクリックするたびにバックグラウンドサービス(スレッドを起動してライブに保つ)を呼び出すインターフェイスを作成しました。

これは良いことです。なぜなら、私は混乱した状況を作り出すことができ、環境がこれにどのように対処するかを知ることができるからです。

しかし、そうでなければ、私は問題に直面しています。現在実行中のすべてのスレッドを取得して、それらをすべて強制終了するにはどうすればよいですか。GBか何かを呼び出します。

4

1 に答える 1

3

実行中のすべてのスレッドのリストは必要ないと思います。特定のメカニズムを介して開始した実行中のスレッドのリストが必要ですよね?

その場合は、これらのスレッドを開始する場所で次のようなことができます。

List<Thread> myThreads = new List<Thread>();

public void StartAThread() {
    Thread t = new Thread( ... whatever ...);
    myThreads.Add(t);
    t.Start();
}

ここで、極度の偏見を持ってこれらのスレッドを殺したいと仮定すると、つまり、今はそれらを殺したいと思っており、作業を途中で終了させることによる連鎖反応を気にしない場合は、次のことができます。

foreach (var t in myThreads)
    t.Abort();
于 2012-05-08T21:33:52.253 に答える