
重新启动。
首先打开控制面板,或者直接ctrl+r输入servicesmsc打开本地服务。
然后找到WindowsModulesInstaller,(PS:快捷键直接按W就可以调到哪一行),点出属性那一栏。
然后点击手动——然后要把服务启动起来,这是最基础的。
static void Main()
{
bool bCreatedNew ;
Mutex m =new Mutex( true, "myUniqueName", out bCreatedNew );
if (bCreatedNew )
{
mReleaseMutex();
ApplicationEnableVisualStyles();
ApplicationSetCompatibleTextRenderingDefault(false);
ApplicationRun(new yourFormName());
}
else
{
MessageBoxShow("已经运行了一个实例了。");
}
}
首先你的代码应用出现了两个知识点
1、lock 加锁:它可以把一段代码定义为互斥段,互斥段在一个时刻内只允许“一个线程”进入执行,而其他线程必须等待。形成互斥 有效范围就是 {} 之间,当代码执行到 }之后 锁定就会解除。
2、函数的递归调用。test(i);
根据 两个技术点特性,可以可定你当i>10 的时候,会进行函数递归,但是不会出现死锁,因为:lock只会生效于多线程,对于单线程,自身已经是锁的所有者,并不会出现为了继续加锁等待原有锁释放。
以上就是关于已清楚互斥锁的应用程序无法启动全部的内容,包括:已清楚互斥锁的应用程序无法启动、C#用互斥的方法,让一个程序只能打开一个,为什么只能在debug的exe起作用,安装后的exe就不起作用了、c#互斥问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)