采用线程互斥锁Mutex,在winform程序的主入口点中加入如下代码,将程序改为单实例运行。
1 static class Program
2 {
3 /// <summary>
4 /// 应用程序的主入口点。
5 /// </summary>
6 [STAThread]
7 static void Main()
8 {
9 bool isRuned;
10 Mutex mtx = new Mutex(true, "OnlyRunOneInstance", out isRuned);
11 if (isRuned)
12 {
13 Application.EnableVisualStyles();
14 Application.SetCompatibleTextRenderingDefault(false);
15 Application.Run(new FormMain());
16 mtx.ReleaseMutex();
17 }
18 else
19 {
20 DataManagerMessageBox.ShowWarning("程序已启动!请勿重复启动程序!");
21 }
22 }
23 }