Làm cách nào để lấy ProcessID hiện tại?


83

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ì?


2
Thật. Tôi đoán có gì đó không ổn ở đây: D @VictorYarema
Deniz

Câu trả lời:


121

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;

2
sử dụng System.Diagnostics; hoặc System.Diagnostics.Process.GetCurrentProcess (). id; Tôi luôn tự bảo vệ mình và cho rằng các quy tắc chính sách hiện tại hoặc tương lai sẽ hạn chế lệnh gọi này trong một số chế độ bị khóa hoặc hạn chế vì nó truy cập vào các khu vực quy trình.
Sql Surfer

17
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;

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.