gpt4 book ai didi

c# - 被遗弃的 MutexException : The wait completed due to an abandoned mutex

转载 作者:太空狗 更新时间:2023-10-29 21:21:49 24 4
gpt4 key购买 nike

为什么以下结构会导致 AbandonedMutexException。即使出现错误或方法返回。正在释放互斥体。

static Mutex WriteMutex = new Mutex(false, @"Global\mutex2203");

public static void Demo()
{

try
{
WriteMutex.WaitOne();

//rest of coding stuff here
}
finally
{
WriteMutex.ReleaseMutex();
}

}

收到无法重新生成错误的报告。

编辑:异常发生在 WriteMutex.WaitOne(); 没有其他代码。并且只有这个方法会触及那个互斥量。

最佳答案

AbandonedMutexException当一个线程获取 Mutex 时抛出另一个线程通过退出而不释放它而放弃的对象(参见 AbandonedMutexException )。您在问题中引用的代码不一定是导致异常的代码,只是“接收”它(即检测引发异常的情况)。

也就是说,另一个线程中的代码(可能是相同的方法但很可能不是)获取 Mutex但不释放它并允许它的线程在没有 Mutex 的情况下退出曾经被释放。然后运行上面显示的代码的线程在尝试获取 Mutex 时抛出异常。 .

关于c# - 被遗弃的 MutexException : The wait completed due to an abandoned mutex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34540130/

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