C#方法锁定不起作用

时间:2015-04-13 10:15:18

标签: c# locking

我有一个需要多次运行的exe文件。

在C#代码中,我有一个从数据库中读取一些值并进行更改的方法。我想阻止多个exe命令获取此方法。 我试图使用锁机制,但它没有工作

private static readonly object locker = new object();

private void myFunc()
    {

        lock (locker)
        {

           //my code

        }
    }

1 个答案:

答案 0 :(得分:3)

lock仅在线程级别有效(在一个进程内)。

  

我有一个需要多次运行的exe文件。

如果您使用多个流程来完成任务,则应使用Mutex代替。

以下是这样做的方法:

private static Mutex mut = new Mutex(false, "MyFuncLock") ; 

private void myFunc()
{
    mut.WaitOne();

       //your code

    mut.ReleaseMutex();
}