Process.Id Proprietà

Definizione

Ottiene l'identificatore univoco per il processo associato.

C#
public int Id { get; }

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.

C#
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;
        }
    }
}

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

Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Vedi anche