【问题标题】:How to remove a Mutex on WinXP如何在 WinXP 上删除互斥锁
【发布时间】:2011-04-05 16:06:18
【问题描述】:

我们的 C# .Net 应用程序中有一个 Mutext,由以下语句创建:

new Mutex(true, "MutexName", out pobjIOwnMutex);

实际上我们没有问题,但一段时间以来,应用程序不能再获得这个互斥体的所有权了。这只发生在我的开发人员电脑上。如果我更改互斥体名称就没有问题,所以我假设互斥体仍然存在于系统中的某个位置。

有没有办法在系统中释放这个互斥体,或者发生这种情况是否有其他原因?

感谢您的帮助, 恩拉

【问题讨论】:

    标签: c# mutex


    【解决方案1】:

    程序的前一个实例是否正在运行?你检查过手柄泄漏吗?尝试使用诸如 Process Explorer 之类的工具来查看是否有任何进程具有打开该互斥锁的句柄。

    【讨论】:

    • 不,没有程序实例在运行,重启系统后也会出现。
    • “不能取得所有权”是什么意思?究竟会发生什么?
    • 在我发布的 sn-p 中,mutex 的构造函数需要一个“out”参数,指示是否创建了新的 mutex。如果 propjIOwnMutex = false (在我的情况下会发生什么),系统已经具有给定名称的互斥锁。这就是我所说的取得所有权。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 2011-10-12
    • 1970-01-01
    相关资源
    最近更新 更多