知道每次用户启动应用程序时它将检查实例是否已在运行的过程是什么。如果它没有运行它将启动它,否则它将集中到当前的one.i已经尝试了单例应用程序的代码,但它给出了很多错误。它运行不正常。你可以为我提供其他解决方案吗?
答案 0 :(得分:3)
您应该使用Mutex
课程,如此处所述:Best way to implement singleton in a console application C#?
编辑:我的代码中有这个:
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");
}
}
答案 1 :(得分:1)
您可以使用名为Mutex
。
可以看到命名的系统互斥锁 整个操作系统,和 可用于同步 流程活动。您可以 创建一个代表的互斥对象 使用a命名系统互斥锁 接受名称的构造函数。
答案 2 :(得分:1)
答案 3 :(得分:0)
如果您正在使用后台工作程序,则不适用使用互斥锁。如果backgroundWorker
忙,它可以有多个实例。