Process.Id Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém o identificador exclusivo para o processo associado.
public:
property int Id { int get(); };
public int Id { get; }
member this.Id : int
Public ReadOnly Property Id As Integer
Valor da propriedade
O identificador exclusivo gerado pelo sistema do processo que é referenciado por essa instância de Process.
Exceções
A propriedade Id do processo não foi definida.
- ou -
Não há processos associados a esse objeto Process.
Exemplos
O exemplo a seguir demonstra como obter o Id para todas as instâncias em execução de um aplicativo. O código cria uma nova instância do Bloco de Notas, lista todas as instâncias do Bloco de Notas e permite que o usuário insira o Id número para remover uma instância 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
Comentários
O processo Id não será válido se o processo associado não estiver em execução. Portanto, você deve garantir que o processo esteja em execução antes de tentar recuperar a Id propriedade. Até que o processo seja encerrado, o identificador de processo identifica exclusivamente o processo em todo o sistema.
Você pode conectar um processo em execução em um computador local ou remoto a uma nova Process instância passando o identificador de processo para o GetProcessById método . GetProcessById é um static
método que cria um novo componente e define a Id propriedade para a nova Process instância automaticamente.
Os identificadores de processo podem ser reutilizados pelo sistema. O Id valor da propriedade é exclusivo somente enquanto o processo associado está em execução. Depois que o processo for encerrado, o sistema poderá reutilizar o valor da Id propriedade para um processo não relacionado.
Como o identificador é exclusivo no sistema, você pode passá-lo para outros threads como uma alternativa para passar uma Process instância. Essa ação pode salvar recursos do sistema, mas garantir que o processo seja identificado corretamente.