thể trùng lặp:
What is the correct way to create a single instance application?Đảm bảo chỉ có một ứng dụng ví dụ
Tôi có một ứng dụng Winforms, mà ra mắt một màn hình thông qua các đoạn mã sau:
Hide();
bool done = false;
// Below is a closure which will work with outer variables.
ThreadPool.QueueUserWorkItem(x =>
{
using (var splashForm = new SplashScreen())
{
splashForm.Show();
while (!done)
Application.DoEvents();
splashForm.Close();
}
});
Thread.Sleep(3000);
done = true;
Các ở trên là trong codebehind của biểu mẫu chính và được gọi từ trình xử lý sự kiện tải.
Tuy nhiên, làm cách nào tôi có thể đảm bảo rằng chỉ một phiên bản của ứng dụng sẽ tải tại một thời điểm? Trong trình xử lý sự kiện tải của biểu mẫu chính, tôi có thể kiểm tra xem danh sách quy trình có trên hệ thống không (thông qua GetProcessesByName (...)), nhưng có phương pháp tốt hơn không?
Sử dụng .NET 3.5.
Bạn nên gọi 'Application.Run (splashForm) 'thay vì một' DoEvents()' vòng lặp. – SLaks