可能重复:
What is the correct way to create a single instance application?确保只有一个应用程序实例
我有一个WinForms应用程序,它通过下面的代码启动一个闪屏:
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;
的上面是主窗体的代码隐藏,并从加载事件处理程序调用。
但是,如何确保一次只加载一个应用程序实例?在主窗体的加载事件处理程序中,我可以检查进程列表是否在系统上(通过GetProcessesByName(...)),但有没有更好的方法?
使用.NET 3.5。
你应该叫'Application.Run(splashForm)',而不是'的DoEvents()'循环。 – SLaks