Process.Id Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.