如何检查是否该应用程序的另一实例正在运行 [英] How to check if another instance of the application is running

查看:182
本文介绍了如何检查是否该应用程序的另一实例正在运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能显示的文件:
  <一href="http://stackoverflow.com/questions/19147/what-is-the-correct-way-to-create-a-single-instance-application">What是创建一个单实例应用程序的正确方法?
  <一href="http://stackoverflow.com/questions/94274/return-to-an-already-open-application-when-a-user-tries-to-open-a-new-instance">Return当用户试图打开一个新的实例一个已经打开的应用程序

Possible Duplicates:
What is the correct way to create a single instance application?
Return to an already open application when a user tries to open a new instance

有人能证明它是如何可以检查程序的另一个实例(如:test.exe的)是否正在运行,如果是停止加载应用程序,如果有它的一个现有实例。

Could someone show how it is possible to check whether another instance of the program (e.g. test.exe) is running and if so stop the application from loading if there is an existing instance of it.

推荐答案

想一些严重的code?这里是。

Want some serious code? Here it is.

var exists = System.Diagnostics.Process.GetProcessesByName(System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location)).Count() > 1;

这适用于任何应用程序(任何名称),将成为如果有另一个实例同一应用程序。

This works for any application (any name) and will become true if there is another instance running of the same application.

编辑:要解决你的需求,你可以使用以下两种:

To fix your needs you can use either of these:

if (System.Diagnostics.Process.GetProcessesByName(System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location)).Count() > 1) return;

这是你的主要方法,退出方法...或

from your Main method to quit the method... OR

if (System.Diagnostics.Process.GetProcessesByName(System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location)).Count() > 1) System.Diagnostics.Process.GetCurrentProcess().Kill();

这将立即杀死当前所加载的过程。

which will kill the currently loading process instantly.

您需要添加一个引用的 System.Core.dll的的的的 .Count之间() 扩展方法的。另外,您也可以使用 .Length 属性。

You need to add a reference to System.Core.dll for the .Count() extension method. Alternatively, you can use the .Length property.

这篇关于如何检查是否该应用程序的另一实例正在运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆