Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何检查已在c#net中运行的exe?_.net_Exe - Fatal编程技术网

.net 如何检查已在c#net中运行的exe?

.net 如何检查已在c#net中运行的exe?,.net,exe,.net,Exe,当用户每次启动应用程序时,它都会检查实例是否已经在运行,要知道的过程是什么。如果它没有运行,它将启动它,否则它将集中到当前的一个。我已经尝试了单例应用程序的代码,但它给出了很多错误。它运转不正常。你能为我提供另一种解决方案吗?你可以使用一个命名的 命名系统互斥体可见 在整个操作系统中,以及 可用于同步 过程的活动。你可以 创建一个表示 通过使用 接受名称的构造函数 您应该使用互斥类,如下所述: 编辑:我的代码中有: class Program { public const string

当用户每次启动应用程序时,它都会检查实例是否已经在运行,要知道的过程是什么。如果它没有运行,它将启动它,否则它将集中到当前的一个。我已经尝试了单例应用程序的代码,但它给出了很多错误。它运转不正常。你能为我提供另一种解决方案吗?

你可以使用一个命名的

命名系统互斥体可见 在整个操作系统中,以及 可用于同步 过程的活动。你可以 创建一个表示 通过使用 接受名称的构造函数


您应该使用
互斥
类,如下所述:

编辑:我的代码中有:

class Program
{
    public const string AppName = "...";
    private static readonly Mutex mutex = new Mutex(true, Program.AppName);

    public Program()
    {
        if (!mutex.WaitOne(TimeSpan.Zero, true))
            throw new ApplicationException("Another instance already running");
    }
}

如果您使用的是后台工作程序,则使用互斥对象不适用。如果
backgroundWorker
忙,它可能有多个实例。

谢谢您的回答。。但是它给了我重新构建设计视图的错误,它显示了设计视图上的错误我已经通过了互斥代码。。但它给了我一个错误:公共覆盖无效处置(bool disposing);找不到合适的方法来处理..这是针对初始化组件。。因此,我对这一部分进行了评论。。但我面临的主要错误是在设计视图部分,设计者无法处理第26行的代码:抛出new NotImplementedException();“InitializeComponent”方法中的代码由设计器生成,不应手动修改。请删除所有更改,然后再次尝试打开设计器。我无法查看表单。cs[设计]plz帮助我!我已经检查了互斥密码。。但它给了我一个错误:公共覆盖无效处置(bool disposing);找不到合适的方法来处理..这是针对初始化组件。。因此,我对这一部分进行了评论。。但我面临的主要错误是在设计视图部分,设计者无法处理第26行的代码:抛出new NotImplementedException();“InitializeComponent”方法中的代码由设计器生成,不应手动修改。请删除所有更改,然后再次尝试打开设计器。我无法查看表单。cs[设计]plz帮助我!Scott hanselman在这里回答: