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.Diagnosticscủa Process.Idtài sản:
int nProcessID = Process.GetCurrentProcess().Id;
Process.GetCurrentProcess().Id
Hoặc, vì Processlớp này là IDisposablevà 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.ProcessIdnên được ưu tiên hơn Process.GetCurrentProcess().Idvì 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.ProcessIdchỉ mất 3ns thay vì 68ns với Process.GetCurrentProcess().Id.