Process.Id Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u de unieke id voor het bijbehorende proces op.
public:
property int Id { int get(); };
public int Id { get; }
member this.Id : int
Public ReadOnly Property Id As Integer
Waarde van eigenschap
De door het systeem gegenereerde unieke id van het proces waarnaar wordt verwezen door dit Process exemplaar.
Uitzonderingen
De eigenschap van Id het proces is niet ingesteld.
– of –
Er is geen proces gekoppeld aan dit Process object.
Voorbeelden
In het volgende voorbeeld ziet u hoe u de Id voor alle actieve exemplaren van een toepassing kunt verkrijgen. Met de code wordt een nieuw exemplaar van Kladblok gemaakt, worden alle exemplaren van Kladblok weergegeven en kan de gebruiker vervolgens het Id nummer invoeren om een specifiek exemplaar te verwijderen.
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;
}
}
}
open System
open System.Diagnostics
let notePad = Process.Start "notepad"
printfn $"Started notepad process Id = {notePad.Id}"
printfn "All instances of notepad:"
// Get Process objects for all running instances on notepad.
let localByName = Process.GetProcessesByName "notepad"
let mutable i = localByName.Length
while i > 0 do
// You can use the process Id to pass to other applications or to
// reference that particular instance of the application.
printfn $"{localByName.[i - 1].Id}"
i <- i - 1
i <- localByName.Length
while i > 0 do
printfn "Enter a process Id to kill the process"
let id = Console.ReadLine()
if String.IsNullOrEmpty id then
i <- 0
else
try
use chosen = Int32.Parse id |> Process.GetProcessById
if chosen.ProcessName = "notepad" then
chosen.Kill()
chosen.WaitForExit()
i <- i - 1
with e ->
printfn "Incorrect entry."
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
Opmerkingen
Het proces Id is ongeldig als het bijbehorende proces niet wordt uitgevoerd. Daarom moet u ervoor zorgen dat het proces wordt uitgevoerd voordat u de Id eigenschap probeert op te halen. Totdat het proces wordt beëindigd, identificeert de proces-id het proces uniek in het hele systeem.
U kunt een proces dat op een lokale of externe computer wordt uitgevoerd, verbinden met een nieuw Process exemplaar door de proces-id door te geven aan de GetProcessById methode.
GetProcessById is een static methode waarmee een nieuw onderdeel wordt gemaakt en de Id eigenschap voor het nieuwe Process exemplaar automatisch wordt ingesteld.
Proces-id's kunnen door het systeem opnieuw worden gebruikt. De Id eigenschapswaarde is alleen uniek terwijl het bijbehorende proces wordt uitgevoerd. Nadat het proces is beëindigd, kan het systeem de Id eigenschapswaarde opnieuw gebruiken voor een niet-gerelateerd proces.
Omdat de id uniek is in het systeem, kunt u deze doorgeven aan andere threads als alternatief voor het doorgeven van een Process exemplaar. Deze actie kan systeembronnen opslaan maar garanderen dat het proces correct wordt geïdentificeerd.