WinForm中如何使当前应用程序只允许启动一个实例
{
bool createNew;
using (System.Threading.Mutex m = new System.Threading.Mutex(true, Application.ProductName, out createNew))
{
if (createNew)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
else
{
MessageBox.Show("该程序己启动");
}
}
}
主要使用了Sytem.Theading.Mutex对象,该对象用于解决多线程操作中的互斥问题,有关它的详细介绍读者可以参考MSDN。
http://msdn.microsoft.com/zh-cn/library/bwe34f1k(VS.80).aspx
一。要实例的子窗体设置
public partial class MainForm. DevComponents.DotNetBar.Office2007Form
{
private MainForm() //1修改public为private
{
InitializeComponent();
}
private static MainForm. MainFrmInstance; //2.声明该窗体的实例
public static MainForm. CreateFrom() //3.创建该窗体的方法
{
if (MainFrmInstance == null || MainFrmInstance.IsDisposed)
{//当实例不存在或实例被释放时
MainFrmInstance = new MainForm();
}
return MainFrmInstance;
}
}
二。调用时
MainForm. frm = MainForm.CreateFrom();
//frm.MdiParent = this;
frm.Show();
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23109131/viewspace-676274/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/23109131/viewspace-676274/