Process.Id Propiedad

Definición

Obtiene el identificador único del proceso asociado.Gets the unique identifier for the associated process.

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

Valor de propiedad

Int32

Identificador único generado por el sistema del proceso al que hace referencia esta instancia de Process.The system-generated unique identifier of the process that is referenced by this Process instance.

Excepciones

No se ha establecido la propiedad Id del proceso.The process's Id property has not been set.

o bien-or- No hay ningún proceso asociado a este objeto Process .There is no process associated with this Process object.

Ejemplos

En el ejemplo siguiente se muestra cómo obtener Id para todas las instancias en ejecución de una aplicación.The following example demonstrates how to obtain the Id for all running instances of an application. El código crea una nueva instancia del Bloc de notas, enumera todas las instancias del Bloc de notas y, a continuación, permite al usuario escribir el Id número para quitar una instancia específica.The code creates a new instance of Notepad, lists all the instances of Notepad, and then allows the user to enter the Id number to remove a specific 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

Comentarios

El proceso Id no es válido si no se está ejecutando el proceso asociado.The process Id is not valid if the associated process is not running. Por lo tanto, debe asegurarse de que el proceso se está ejecutando antes de intentar recuperar la Id propiedad.Therefore, you should ensure that the process is running before attempting to retrieve the Id property. Hasta que finalice el proceso, el identificador del proceso identifica el proceso de forma exclusiva en todo el sistema.Until the process terminates, the process identifier uniquely identifies the process throughout the system.

Puede conectar un proceso que se está ejecutando en un equipo local o remoto a una nueva Process instancia pasando el identificador de proceso al GetProcessById método.You can connect a process that is running on a local or remote computer to a new Process instance by passing the process identifier to the GetProcessById method. GetProcessById es un static método que crea un nuevo componente y establece Id automáticamente la propiedad de la nueva Process instancia.GetProcessById is a static method that creates a new component and sets the Id property for the new Process instance automatically.

El sistema puede reutilizar los identificadores de proceso.Process identifiers can be reused by the system. El Id valor de propiedad es único solo mientras se está ejecutando el proceso asociado.The Id property value is unique only while the associated process is running. Una vez finalizado el proceso, el sistema puede volver Id a usar el valor de propiedad para un proceso no relacionado.After the process has terminated, the system can reuse the Id property value for an unrelated process.

Dado que el identificador es único en el sistema, puede pasarlo a otros subprocesos como alternativa a pasar una Process instancia.Because the identifier is unique on the system, you can pass it to other threads as an alternative to passing a Process instance. Esta acción puede guardar los recursos del sistema, pero garantizar que el proceso se haya identificado correctamente.This action can save system resources yet guarantee that the process is correctly identified.

Se aplica a

Consulte también