一次启动应用程序C#

时间:2012-07-18 13:02:37

标签: c# forms single-instance

我只是在C#中创建一个应用程序,但我不喜欢它。我想让应用程序运行一次。现在,如果我的应用程序正在运行,当我再次运行应用程序时,将启动另一个应用程序。我想让应用程序只运行一次,如果你想再次运行应用程序,而不是创建另一个应用程序,而是启动正在运行的应用程序。

感谢。

4 个答案:

答案 0 :(得分:5)

请检查此问题:Run single instance of an application using Mutex

您正在寻找Mutex来检查您的应用是否正在运行。然后找到正在运行的应用程序Process并将其提前。

答案 1 :(得分:1)

我实现这一目标的方法是使用Mutex。应用程序的每个实例都尝试在启动时锁定互斥锁。如果他们成功了,他们就会跑;如果他们失败了,他们就不会。

无法运行的应用程序还会恢复并激活正在运行的实例。根据它是WPF还是WinForms应用程序,这取决于不同。

互斥方法的优势在于它比使用FindWindow更不容易出现竞争条件。

答案 2 :(得分:0)

当你的应用程序启动时,你必须看到你的应用程序实例已经运行的进程,然后根据它做出决定。

可能重复:

Detecting a Process is already running in windows using C# .net

How to check already running exe in c#.net?

答案 3 :(得分:0)

您所指的概念是“单实例应用程序”。 这通常通过命名的可等待对象来实现,查看this articlethis one