0

顧客による「ゴースト」アプリケーションがある場合があります (つまり、かなりの時間 (72 時間以上) 後にアプリケーションを閉じると、視覚的には閉じられているがプロセス リストに残っているアプリケーションがある場合があります)。

簡単に再現できないため、どのスレッドがまだ実行されているかを知りたいです。そのため、プロセスを選択し (「ゴースト」であるプロセスを選択)、取得できるすべての情報 (主に実行されているスレッド名) を表示できる非常に小さなツールを提供したいと考えています。

そう:

  1. これは可能ですか?ac# アプリケーションが別のアプリケーションのスレッド名にアクセスできるかどうかわかりません。
  2. この種の「抽出」を行うことができる既存のアプリケーションはありますか
  3. この種の情報にアクセスするには、何を使用すればよいでしょうか?
4

3 に答える 3

2

プロセス エクスプローラーを試すと、実行中のプロセス内のスレッドの詳細が表示されます。

http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

プロセス エクスプローラー スレッド

于 2013-09-30T09:32:23.640 に答える
2

Justin Harvey が述べたように、Process Explorer は優れたソリューションです。

独自のツールを提供したい場合は、以下に興味があるかもしれません:

Process.GetProcessByName() およびProcess.Threads

使用法

var process = Process.GetProcessByName("myprocess").FirstOrDefault();
var threads = process.Threads;
于 2013-09-30T09:38:30.950 に答える
1

別のプロセスのスレッド情報にアクセスできますが、次のようになります。

Process[] p = Process.GetProcessesByName("YourProcess");
foreach (ProcessThread thread in p[0].Threads)
{
    Console.WriteLine(thread.Id);
}

スレッドの名前にはアクセスできませんが、ProcessThread クラスで利用可能な情報を取得できます

于 2013-09-30T09:38:39.800 に答える