首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# 创造唯一实例后使用Application.Restart()

2012-11-06 
C# 创建唯一实例后使用Application.Restart()使用如下方法保证程序启动唯一实例:bool retSystem.Threadin

C# 创建唯一实例后使用Application.Restart()
使用如下方法保证程序启动唯一实例:
bool ret;
System.Threading.Mutex mutex = new System.Threading.Mutex(true, Application.ProductName, out ret); 
if (ret)
{
  Application.EnableVisualStyles();
  Application.SetCompatibleTextRenderingDefault(false);
  Application.Run(new FrmMain());
   
  //Main为你程序的主窗体,如果是控制台程序不用这句  
  mutex.ReleaseMutex();
 }
 else
 {
  MessageBox.Show(null, "本程序已经运行", Application.ProductName, MessageBoxButtons.OK,MessageBoxIcon.Warning);
  Application.Exit();
}

问题:
我想重启程序。
我在代码中使用Application.Restart()后,会提示本程序已经运行。

怎样启用唯一实例,又可以实现重新启动程序的功能???

[解决办法]
class Program
{
public static System.Threading.Mutex mutex;
static void Main()
{
//...
}
}

ps:
把System.Threading.Mutex mutex写成一个静态成员后,就不用在Main()中mutex.ReleaseMutex(); 
而关闭Mutex可以直接用Program.mutex.Close(); 这里它跟Dispose的作用一样。

热点排行