Process.Id Özellik

Tanım

İlişkili işlemin benzersiz tanımlayıcısını alır.

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

Özellik Değeri

Bu Process örnek tarafından başvuruda bulunan işlemin sistem tarafından oluşturulan benzersiz tanımlayıcısı.

Özel durumlar

İşlemin Id özelliği ayarlanmadı.

-veya-

Bu Process nesneyle ilişkilendirilmiş bir işlem yok.

Örnekler

Aşağıdaki örnek, bir uygulamanın çalışan tüm örnekleri için öğesinin Id nasıl alındığını gösterir. Kod yeni bir Not Defteri örneği oluşturur, Not Defteri'nin tüm örneklerini listeler ve ardından kullanıcının belirli bir örneği kaldırmak için numarayı girmesini Id sağlar.

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

Açıklamalar

İlişkili işlem Id çalışmıyorsa işlem geçerli değildir. Bu nedenle, özelliğini almayı denemeden önce işlemin çalıştığından Id emin olmanız gerekir. İşlem sonlandırılıncaya kadar, işlem tanımlayıcısı işlemi sistem genelinde benzersiz olarak tanımlar.

İşlem tanımlayıcısını yöntemine geçirerek, yerel veya uzak bir bilgisayarda çalışan bir işlemi yeni Process bir örneğe GetProcessById bağlayabilirsiniz. GetProcessByIdyeni bir bileşen oluşturan ve yeni Process örneğin özelliğini otomatik olarak ayarlayan Id bir static yöntemdir.

İşlem tanımlayıcıları sistem tarafından yeniden kullanılabilir. Id Özellik değeri yalnızca ilişkili işlem çalışırken benzersizdir. İşlem sonlandırıldıktan sonra sistem, ilgisiz bir işlem için özellik değerini yeniden Id kullanabilir.

Tanımlayıcı sistemde benzersiz olduğundan, örneği geçirmeye alternatif olarak diğer iş parçacıklarına geçirebilirsiniz Process . Bu eylem sistem kaynaklarını kaydedebilir ancak işlemin doğru şekilde tanımlandığını garanti eder.

Şunlara uygulanır

Ayrıca bkz.