Process.Id Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İ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
Örnekler
Aşağıdaki örnek, bir uygulamanın çalışan tüm örnekleri için öğesinin nasıl alındığını Id gösterir. Kod, Not Defteri'nin yeni bir örneğini 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;
}
}
}
open System
open System.Diagnostics
let notePad = Process.Start "notepad"
printfn $"Started notepad process Id = {notePad.Id}"
printfn "All instances of notepad:"
// Get Process objects for all running instances on notepad.
let localByName = Process.GetProcessesByName "notepad"
let mutable i = localByName.Length
while i > 0 do
// You can use the process Id to pass to other applications or to
// reference that particular instance of the application.
printfn $"{localByName.[i - 1].Id}"
i <- i - 1
i <- localByName.Length
while i > 0 do
printfn "Enter a process Id to kill the process"
let id = Console.ReadLine()
if String.IsNullOrEmpty id then
i <- 0
else
try
use chosen = Int32.Parse id |> Process.GetProcessById
if chosen.ProcessName = "notepad" then
chosen.Kill()
chosen.WaitForExit()
i <- i - 1
with e ->
printfn "Incorrect entry."
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ği almaya çalışmadan önce işlemin çalıştığından Id emin olmanız gerekir. İşlem sonlandırana kadar, işlem tanımlayıcısı işlemi sistem genelinde benzersiz olarak tanımlar.
İşlem tanımlayıcısını Process yöntemine geçirerek, yerel veya uzak bir bilgisayarda çalışan bir işlemi yeni GetProcessById bir örneğe bağlayabilirsiniz.
GetProcessById, yeni bir bileşen oluşturan ve yeni static örneğin özelliğini otomatik olarak ayarlayan Id bir Process 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çirmenin alternatifi olarak bunu 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.