利用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()方法中做相应控制即可。