我有一个需要多次运行的exe文件。
在C#代码中,我有一个从数据库中读取一些值并进行更改的方法。我想阻止多个exe命令获取此方法。 我试图使用锁机制,但它没有工作
private static readonly object locker = new object();
private void myFunc()
{
lock (locker)
{
//my code
}
}
答案 0 :(得分:3)
lock
仅在线程级别有效(在一个进程内)。
我有一个需要多次运行的exe文件。
如果您使用多个流程来完成任务,则应使用Mutex代替。
以下是这样做的方法:
private static Mutex mut = new Mutex(false, "MyFuncLock") ;
private void myFunc()
{
mut.WaitOne();
//your code
mut.ReleaseMutex();
}