0

スレッドを使用してタスクを終了するアプリケーションを開発しました。プロセスの途中で実行中のアプリケーションを閉じたいのですが、スレッドはバックグラウンドで実行されています。

今、アプリケーションが作成されたアクティブなスレッドを表示したいと思います。しかし、難しいのは、vs からアプリケーションを起動すると、アプリケーションを実行せずに 14 ~ 19 スレッドのようにタスク マネージャーにスレッドが表示されることです。

システムではなくアプリケーションによって作成されたスレッドのみを表示するように教えてください。

4

3 に答える 3

4

Process.Threadsを使用しないのはなぜですか? 以下は、プロセスで実行されているすべてのスレッドを提供するはずです。

var myProcess = Process.GetCurrentProcess();
var myThreads = myProcess.Threads;
于 2012-09-18T05:48:50.007 に答える
0

この一行は多分あなたを助けるでしょう。

System.Diagnostics.Process.GetCurrentProcess().Threads.Count
于 2012-09-18T05:56:06.060 に答える
0

私はこの問題に少し違ったアプローチをします。自分で開始したスレッドの量を追跡します。

1 つの UI スレッドが必要であり、次に x 個の新しいスレッドを開始する必要があると仮定するのが正しいことを願っています。開始したスレッドの総数が必要な場合は、スレッドが開始するたびにアプリケーションのどこかで static int をインクリメントし、スレッドが停止するたびにその int をデクリメントします。

2 つのスレッドが同時に値を変更しないようにするには、静的 int のインクリメント コードとデクリメント コードをロックする必要があります。

.Net には、これを行うかなりの数のライブラリがあります。時間があれば、この記事を読むことをお勧めします。正しい方向に進むためのヒントになるかもしれません。

于 2012-11-06T22:32:00.943 に答える