Condividi tramite


Process.Id Proprietà

Definizione

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.

Si applica a

Vedi anche