gpt4 book ai didi

c# - 即使操作系统报告它存在,也找不到互斥锁

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:57 34 4
gpt4 key购买 nike

我正在 Windows 服务中创建和使用互斥锁

using(var m = new Mutex(false,"mymutex")
{
m.WaitOne();
//to my things for a long time
m.ReleaseMutex();
}

在另一个以管理员权限运行的程序上

Mutex.OpenExisting("mymutex")

它抛出互斥体不存在。我可以在资源管理器中看到 Windows 服务引用了互斥量。

怎么了?

最佳答案

像 Mutex 这样的操作系统对象有 session 作用域。您的服务在 session 0 中运行,因此它的互斥体对在桌面 session 上运行的进程不可见。解决方法很简单,将 Global\ 作为互斥体名称的前缀。

关于c# - 即使操作系统报告它存在,也找不到互斥锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8445063/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com