在C#中使用Mutex

25 浏览
0 Comments

在C#中使用Mutex

我在中对多线程稍微陌生,也对一般情况陌生。

在我的程序中,我使用mutex来确保只有一个线程可以进入临界区,但是通过一些cw打印,我发现多个线程进入了我的临界区,以下是我的代码:

Mutex m = new Mutex();
m.WaitOne();
 // 在这里是临界区
m.ReleaseMutex();

我非常想知道我在这里是否犯了错误,非常感谢您的帮助。

编辑:

我的代码包含类,所以基本上是这样的:

public class test
{
    private mutex m;
    public test()
    {
         m = new mutex();
    }
    public func()
    {
         m.WaitOne();
          // 在这里是临界区
         m.ReleaseMutex();
     }
} 

0