Cách đơn giản nhất để lấy ID quy trình hiện tại từ trong ứng dụng của riêng bạn, sử dụng .NET Framework là gì?
Câu trả lời:
Nhận một tài liệu tham khảo cho quá trình hiện tại và sử dụng System.Diagnostics
của Process.Id
tài sản:
int nProcessID = Process.GetCurrentProcess().Id;
Process.GetCurrentProcess().Id
Hoặc, vì Process
lớp này là IDisposable
và ID tiến trình sẽ không thay đổi trong khi ứng dụng của bạn đang chạy, bạn có thể có một lớp trợ giúp với thuộc tính tĩnh:
public static int ProcessId
{
get
{
if (_processId == null)
{
using(var thisProcess = System.Diagnostics.Process.GetCurrentProcess())
{
_processId = thisProcess.Id;
}
}
return _processId.Value;
}
}
private static int? _processId;
.NET 5 sắp ra mắt Environment.ProcessId
nên được ưu tiên hơn Process.GetCurrentProcess().Id
vì nó tránh được sự phân bổ và sự cần thiết phải loại bỏ đối tượng Process.
https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/ hiển thị điểm chuẩn Environment.ProcessId
chỉ mất 3ns thay vì 68ns với Process.GetCurrentProcess().Id
.