Process.Id Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene l'identificatore univoco per il processo associato.
public:
property int Id { int get(); };
public int Id { get; }
member this.Id : int
Public ReadOnly Property Id As Integer
Valore della proprietà
Identificatore univoco generato dal sistema relativo al processo cui questa istanza di Process fa riferimento.
Eccezioni
La proprietà Id del processo non è stata impostata.
-oppure-
A questo oggetto Process non è associato alcun processo.
Esempio
Nell'esempio seguente viene illustrato come ottenere per Id tutte le istanze in esecuzione di un'applicazione. Il codice crea una nuova istanza del Blocco note, elenca tutte le istanze del Blocco note e quindi consente all'utente di immettere il Id numero per rimuovere un'istanza specifica.
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
Commenti
Il processo Id non è valido se il processo associato non è in esecuzione. È pertanto necessario assicurarsi che il processo sia in esecuzione prima di tentare di recuperare la Id proprietà. Fino al termine del processo, l'identificatore del processo identifica in modo univoco il processo in tutto il sistema.
È possibile connettere un processo in esecuzione in un computer locale o remoto a una nuova Process istanza passando l'identificatore del GetProcessById processo al metodo . GetProcessById è un static
metodo che crea un nuovo componente e imposta automaticamente la Id proprietà per la nuova Process istanza.
Gli identificatori di processo possono essere riutilizzati dal sistema. Il valore della Id proprietà è univoco solo durante l'esecuzione del processo associato. Al termine del processo, il sistema può riutilizzare il valore della Id proprietà per un processo non correlato.
Poiché l'identificatore è univoco nel sistema, è possibile passarlo ad altri thread come alternativa al passaggio di un'istanza Process . Questa azione può salvare le risorse di sistema pur garantendo che il processo sia identificato correttamente.