C#在每次启动另一个实例时终止一个应用程序可以通过以下方式实现:
using System;
using System.Threading;
class Program
{
static void Main()
{
bool createdNew;
Mutex mutex = new Mutex(true, "MyAppMutex", out createdNew);
if (!createdNew)
{
// 应用程序已经在运行中,终止当前实例
return;
}
// 正常启动应用程序的逻辑
Console.WriteLine("应用程序已启动");
Console.ReadLine();
// 释放Mutex对象
mutex.ReleaseMutex();
}
}
using System;
using System.IO.Pipes;
class Program
{
static void Main()
{
using (NamedPipeClientStream pipeClient = new NamedPipeClientStream(".", "MyAppPipe", PipeDirection.In))
{
try
{
// 尝试连接到命名管道
pipeClient.Connect(500);
// 连接成功,表示应用程序已经在运行中,终止当前实例
return;
}
catch (TimeoutException)
{
// 连接超时,表示应用程序未在运行中,继续执行
}
}
// 正常启动应用程序的逻辑
Console.WriteLine("应用程序已启动");
Console.ReadLine();
}
}
这些方法可以确保在每次启动另一个实例时终止当前应用程序,从而避免多个实例同时运行。
领取专属 10元无门槛券
手把手带您无忧上云