我在 C# 中的线程方面有点新手,我的程序中我正在使用mutex
来允许只有1个线程进入关键部分,但由于某种未知原因,在进行一些打印时,我可以看到多个线程正在进入我的关键部分,这是我的代码:
Mutex m = new Mutex();
m.WaitOne();
<C.S> // critical section here
m.ReleaseMutex();
我非常想知道我是否在这里犯了错误,提前感谢您的帮助。
编辑:
我的代码包括类,所以它基本上看起来更像这样:
public class test
{
private mutex m;
public test()
{
m = new mutex();
}
public func()
{
m.WaitOne();
<C.S> // critical section here
m.ReleaseMutex();
}
}
try
/finally
来确保安全。 - Marc GravellMutex
是互斥
。 - yu yang Jian