Process.Id Eigenschap

Definitie

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.

Van toepassing op

Zie ook