利用System.Threading命名空間下的Mutex類,可以限制應用程序,讓它不能同時運行多個實例。
在WinForm程序中,可以將Mutex類嵌在Main()函數中,代碼如下:
static class Program
{
/// <summary>
/// 應用程序的主入口點。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
bool fistApplicationInstance;
string mutexName = Assembly.GetEntryAssembly().FullName;
using (Mutex mutex = new Mutex(false, mutexName, out fistApplicationInstance))
{
if (fistApplicationInstance)
{
Application.Run(new Form1());
}
else
{
MessageBox.Show("另一個程序已在進行");
}
}
}
}
控制檯應用程序也類型,在Maiin()方法中做相應控制即可。