Partage via


Process.Id Propriété

Définition

Obtient l'identificateur unique du processus associé.

public:
 property int Id { int get(); };
public int Id { get; }
member this.Id : int
Public ReadOnly Property Id As Integer

Valeur de propriété

Identificateur unique généré par le système du processus référencé par cette instance Process.

Exceptions

La propriété Id du processus n’a pas été définie.

- ou -

Aucun processus n’est associé à cet objet Process .

Exemples

L’exemple suivant montre comment obtenir le Id pour toutes les instances en cours d’exécution d’une application. Le code crée une instance du Bloc-notes, répertorie toutes les instances du Bloc-notes, puis permet à l’utilisateur d’entrer le Id numéro pour supprimer un instance spécifique.

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

Remarques

Le processus Id n’est pas valide si le processus associé n’est pas en cours d’exécution. Par conséquent, vous devez vous assurer que le processus est en cours d’exécution avant de tenter de récupérer la Id propriété. Jusqu’à ce que le processus s’arrête, l’identificateur du processus identifie de manière unique le processus dans l’ensemble du système.

Vous pouvez connecter un processus en cours d’exécution sur un ordinateur local ou distant à un nouveau Process instance en passant l’identificateur de processus à la GetProcessById méthode . GetProcessByIdest une static méthode qui crée un composant et définit automatiquement la Id propriété pour le nouveau Process instance.

Les identificateurs de processus peuvent être réutilisés par le système. La Id valeur de la propriété est unique uniquement pendant l’exécution du processus associé. Une fois le processus terminé, le système peut réutiliser la valeur de propriété Id pour un processus non lié.

Étant donné que l’identificateur est unique sur le système, vous pouvez le transmettre à d’autres threads en guise d’alternative au passage d’un Process instance. Cette action peut économiser des ressources système tout en garantissant que le processus est correctement identifié.

S’applique à

Voir aussi