Process.Id Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá jedinečný identifikátor přidruženého procesu.
public:
property int Id { int get(); };
public int Id { get; }
member this.Id : int
Public ReadOnly Property Id As Integer
Hodnota vlastnosti
Systémem vygenerovaný jedinečný identifikátor procesu, na který tato Process instance odkazuje.
Výjimky
Příklady
Následující příklad ukazuje, jak získat pro Id všechny spuštěné instance aplikace. Kód vytvoří novou instanci Poznámkového bloku, vypíše všechny instance Poznámkového bloku a pak uživateli umožní zadat Id číslo pro odebrání konkrétní instance.
using System;
using System.Threading;
using System.Security.Permissions;
using System.Security.Principal;
using System.Diagnostics;
class ProcessDemo
{
public static void Main()
{
Process notePad = Process.Start("notepad");
Console.WriteLine("Started notepad process Id = " + notePad.Id);
Console.WriteLine("All instances of notepad:");
// Get Process objects for all running instances on notepad.
Process[] localByName = Process.GetProcessesByName("notepad");
int i = localByName.Length;
while (i > 0)
{
// You can use the process Id to pass to other applications or to
// reference that particular instance of the application.
Console.WriteLine(localByName[i - 1].Id.ToString());
i -= 1;
}
i = localByName.Length;
while (i > 0)
{
Console.WriteLine("Enter a process Id to kill the process");
string id = Console.ReadLine();
if (string.IsNullOrEmpty(id))
break;
try
{
using (Process chosen = Process.GetProcessById(Int32.Parse(id)))
{
if (chosen.ProcessName == "notepad")
{
chosen.Kill();
chosen.WaitForExit();
}
}
}
catch (Exception e)
{
Console.WriteLine("Incorrect entry.");
continue;
}
i -= 1;
}
}
}
Imports System.Threading
Imports System.Security.Permissions
Imports System.Security.Principal
Imports System.Diagnostics
Class ProcessDemo
Public Shared Sub Main()
Dim notePad As Process = Process.Start("notepad")
Console.WriteLine("Started notepad process Id = " + notePad.Id.ToString())
Console.WriteLine("All instances of notepad:")
' Get Process objects for all running instances on notepad.
Dim localByName As Process() = Process.GetProcessesByName("notepad")
Dim i As Integer = localByName.Length
While i > 0
' You can use the process Id to pass to other applications or to
' reference that particular instance of the application.
Console.WriteLine(localByName((i - 1)).Id.ToString())
i -= 1
End While
i = localByName.Length
While i > 0
Console.WriteLine("Enter a process Id to kill the process")
Dim id As String = Console.ReadLine()
If id = String.Empty Then
Exit While
End If
Try
Using chosen As Process = Process.GetProcessById(Int32.Parse(id))
If chosen.ProcessName = "notepad" Then
chosen.Kill()
chosen.WaitForExit()
End If
End Using
Catch e As Exception
Console.WriteLine("Incorrect entry.")
GoTo ContinueWhile1
End Try
i -= 1
ContinueWhile1:
End While
End Sub
End Class
Poznámky
Proces Id není platný, pokud přidružený proces není spuštěný. Proto byste se měli před pokusem o načtení Id vlastnosti ujistit, že je proces spuštěný. Dokud se proces neskončil, identifikátor procesu jednoznačně identifikuje proces v celém systému.
Proces spuštěný na místním nebo vzdáleném počítači můžete připojit k nové Process instanci předáním identifikátoru GetProcessById procesu metodě. GetProcessByIdstatic
je metoda, která vytvoří novou komponentu Id a nastaví vlastnost pro novou Process instanci automaticky.
Systém může identifikátory procesů znovu použít. Hodnota Id vlastnosti je jedinečná pouze v době, kdy je přidružený proces spuštěný. Po ukončení procesu může systém znovu použít Id hodnotu vlastnosti pro nesouvisející proces.
Vzhledem k tomu, že identifikátor je v systému jedinečný, můžete ho předat jiným vláknům jako alternativu k předání Process instance. Tato akce může šetřit systémové prostředky a přitom zaručit správnou identifikaci procesu.