星空网 > 软件开发 > ASP.net

文件读写锁

避免文件被死锁,lock 确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。
下面是一个文件的锁工厂:
  /// <summary>  /// 文件锁工厂  /// </summary>  public class LockFactory  {    public object lockObj = new object();    private LockFactory()    {          }    private static LockFactory _lockFactory = new LockFactory();    public static LockFactory Instance    {      get      {        return _lockFactory;      }    }    private IDictionary<string, object> lockDictionary = new Dictionary<string, object>();    public object GetLock(string filename)    {      lock (lockObj)      {        if (lockDictionary.ContainsKey(filename))        {          return lockDictionary[filename];        }        else        {          var obj = new object();          lockDictionary[filename] = obj;          return obj;        }      }    }  }

一般在文件的写,往文件里面追加,删除文件,创建文件,读取文件等等中文件最好是加一下锁。。。

文件读写锁文件读写锁
 public class IOLock  {    public static void FileWrite(string filename,string content)    {      lock (LockFactory.Instance.GetLock(filename))      {        File.WriteAllText(filename, content);      }    }    public static void FileAppend(string filename, string content)    {      lock (LockFactory.Instance.GetLock(filename))      {        File.AppendAllText(filename, content);      }    }    public static void DeleteFile(string filename)    {      lock (LockFactory.Instance.GetLock(filename))      {        File.Delete(filename);      }    }    public static void CreateFile(string filename)    {      lock (LockFactory.Instance.GetLock(filename))      {        File.Create(filename).Close();      }    }    public static void CreateFileText(string filename)    {      lock (LockFactory.Instance.GetLock(filename))      {        File.CreateText(filename).Close();      }    }    public static string ReadFileText(string filename)    {      lock (LockFactory.Instance.GetLock(filename))      {        return File.ReadAllText(filename);      }    }  }

View Code

 同一时间只让一个线程访问资源,其他线程等待!




原标题:文件读写锁

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

澳大利亚新动向 | eBay将提高免费送货计划门槛:https://www.kjdsnews.com/a/774462.html
2022年最详细的SEMrush系统教程:https://www.kjdsnews.com/a/774463.html
东南亚卖家春节“爆单”准备全攻略:https://www.kjdsnews.com/a/774464.html
WordPress建站 | 如何更新WordPress PHP?:https://www.kjdsnews.com/a/774465.html
社媒投广告性价比下降,试试用这3招转变获客思路:https://www.kjdsnews.com/a/774466.html
2022年,6大电子邮件营销趋势你必须懂:https://www.kjdsnews.com/a/774467.html
独家丨B站广告位可跳转美团APP B站为电商平台引流再升级 :https://www.kjdsnews.com/a/1836410.html
百崖大峡谷生态旅游景区(探秘中国西南自然风光):https://www.vstour.cn/a/363176.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流