Compartir a través de


Process.Id Propiedad

Definición

Obtiene el identificador único del proceso asociado.

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

Valor de propiedad

Identificador único generado por el sistema del proceso al que hace referencia esta instancia de Process.

Excepciones

No se ha establecido la propiedad Id del proceso.

o bien

No hay ningún proceso asociado a este objeto Process .

Ejemplos

En el ejemplo siguiente se muestra cómo obtener para Id todas las instancias en ejecución de una aplicación. 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.

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 el proceso asociado no se está ejecutando. Por lo tanto, debe asegurarse de que el proceso se está ejecutando antes de intentar recuperar la Id propiedad . Hasta que finalice el proceso, el identificador de proceso identifica de forma única el proceso en todo el sistema.

Puede conectar un proceso que se ejecuta en un equipo local o remoto a una nueva Process instancia pasando el identificador de proceso al GetProcessById método . GetProcessById es un static método que crea un nuevo componente y establece la Id propiedad de la nueva Process instancia automáticamente.

El sistema puede reutilizar los identificadores de proceso. El Id valor de la propiedad es único solo mientras se ejecuta el proceso asociado. Una vez finalizado el proceso, el sistema puede reutilizar el valor de propiedad Id de un proceso no relacionado.

Dado que el identificador es único en el sistema, puede pasarlo a otros subprocesos como alternativa a pasar una Process instancia. Esta acción puede guardar los recursos del sistema pero garantizar que el proceso se identifique correctamente.

Se aplica a

Consulte también