Поделиться через


Process.Id Свойство

Определение

Получает уникальный идентификатор связанного процесса.

public:
 property int Id { int get(); };
public int Id { get; }
member this.Id : int
Public ReadOnly Property Id As Integer

Значение свойства

Созданный системой уникальный идентификатор, на который ссылается этот экземпляр Process.

Исключения

Свойство Id процесса не задано.

-или-

С этим объектом Process не связаны никакие процессы.

Примеры

В следующем примере показано, как получить Id для всех запущенных экземпляров приложения. Код создает новый экземпляр Блокнота, перечисляет все экземпляры Блокнота, а затем позволяет пользователю ввести Id номер для удаления определенного экземпляра.

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

Комментарии

Недопустимый процесс Id , если связанный процесс не выполняется. Поэтому перед попыткой получить Id свойство следует убедиться, что процесс запущен. До завершения процесса идентификатор процесса однозначно идентифицирует процесс во всей системе.

Вы можете подключить процесс, который выполняется на локальном или удаленном компьютере, к новому Process экземпляру, передав идентификатор процесса методу GetProcessById . GetProcessByIdstatic— это метод, который создает новый компонент и автоматически задает Id свойство для нового Process экземпляра.

Идентификаторы процессов могут повторно использоваться системой. Значение Id свойства уникально только во время выполнения связанного процесса. После завершения процесса система может повторно использовать Id значение свойства для несвязанного процесса.

Так как идентификатор уникален в системе, его можно передать другим потокам в качестве альтернативы передаче экземпляра Process . Это действие может сэкономить системные ресурсы, но гарантировать правильность идентификации процесса.

Применяется к

См. также раздел