互斥控制台版本
本文关键字:版本 控制台 | 更新日期: 2023-09-27 18:33:46
这是一个控制台应用程序 Wqhen 我运行下面的程序它显示单个控制台我已经从 bin 目录中执行了其他 3 个控制台,现在我的问题是
当 1 个控制台已完成其任务时。控制权不会转到其他控制台 它显示相同的显示正在运行(控制台 1)。跑步在其他主机上如何显示。
class Program
{
static Mutex m = new Mutex(true, "demo");
public static void Main()
{
if (!m.WaitOne(1000))
{
Console.WriteLine("another");
Console.ReadLine();
}
else
{
try
{
run();
}
finally
{
m.ReleaseMutex();
}
}
}
public static void run()
{
Console.WriteLine("running");
Console.ReadLine();
Thread.Sleep(1000);
m.ReleaseMutex();
}
}
您的程序会因为用户输入的 readline 而卡住,请尝试使用互斥锁
,例如下面using (var mutex = new Mutex(false, "demo"))
{
mutex.WaitOne();
run();
mutex.ReleaseMutex();
}