Visual Studio 2015Visual Studio .NET 2003.NET 1.1Windows 2000.NET4Windows XPC# 2.0C# 3.5C# 3.0C# 4.0中级开发Visual StudioWindows.NETC#
C# 中的单实例应用程序






4.87/5 (105投票s)
一篇文章,演示了如何在应用程序启动时检测是否已经有另一个实例在运行,如果是,则激活之前的实例。
引言
应用程序的单实例意味着在启动时,应用程序能够识别是否已经有自身的另一个实例在运行。在这种情况下,新的应用程序将停止执行。通常,对于基于窗体的应用程序,如果应用程序已经运行,新的实例会激活(将应用程序窗口带到前台)之前的实例。
使用代码
要创建一个单实例应用程序,请将文件 SingleApplication.cs 添加到您的项目中。它添加了一个名为 SingleApplication
的新类,该类定义在 SingleInstance
命名空间中,并将以下代码添加到您的启动代码中
static void Main()
{
SingleInstance.SingleApplication.Run(new FrmMain());
}
FrmMain
是主窗体类名。Run
方法如果已经有其他实例在运行,则返回 false
。对于基于控制台的应用程序,请在不带任何参数的情况下调用 Run( )
并检查返回值,如果为 true,则可以执行您的应用程序。
与控制台应用程序一起使用
static void Main()
{
if(SingleInstance.SingleApplication.Run() == false)
{
return;
}
//Write your program logic here
}
历史
- 2003 年 6 月 29 日 - 文章的初始发布。
- 2003 年 7 月 1 日 - 添加了互斥锁支持。
- 2004 年 12 月 11 日 - 根据用户反馈改进了性能,特别感谢 Mach005。
- 2018 年 6 月 7 日 - 上传了 VS2015 项目。