9

C# のSystem.Diagnostic.Processオブジェクトを使用しています。
そのプロパティの 1 つですId
これが生成する は、 に示すIdと同じではありません。どうしてこれなの?PIDWindows Task Manager

このプロセスが開始されると、わかります。
オブジェクト プロパティの参照によって ID を明示的に取得することはできません。
を介してプロセス名でそれらを見つけるために、すべてのプロセスを検索する必要がありますSystem.Diagnostics.Process.GetProcesses()

このプロセスと関連するすべてのプロセスを で強制終了する信頼できる方法を見つけようとしてPIDいますTask Manager
より良い方法はありますか?

関連するプロセス名を持つすべてのプロセスを強制終了することはできません。これは、プログラムとは関係のないプロセスの他のインスタンスを強制終了する可能性があるためです。

4

2 に答える 2

1

これを再現できません。次のコードを実行しました。

foreach (var proc in Process.GetProcesses()
                            .OrderBy(proc => proc.Id))
{
    Console.WriteLine("{0}: {1}", p.Id, p.ProcessName);
}

リストされているすべてのプロセスは、タスク マネージャーの PID と一致しています。これは Windows 7 を使用しています - どの OS を使用していますか? 他のプロセスを見ると、タスク マネージャーに表示される PID と一致しますか?

于 2010-02-23T08:24:30.890 に答える