首页 新闻 会员 周边

使用Threading.EnterWriteLock多线程并发问题

0
悬赏园豆:10 [待解决问题]

写了个多线程爬虫,每次取得数据后都向日志文件写入一条信息。但是使用EnterWriteLock之后还是会随机出现 文件被进程占用无法访问的错误。代码如下

        /// 将日志信息写入文件
        /// </summary>
        /// <param name="logText">日志信息</param>
        public void logWirte(string logText)
        {
            string threadID = Thread.CurrentThread.ManagedThreadId.ToString();
            cacheLock.EnterWriteLock();
            try
            {       
                //判断日志文件的存在
                FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read);
                fs.Close();
                fs.Dispose();
                StreamWriter sw = new StreamWriter(path, true);
                sw.WriteLine(DateTime.Now.ToString("hh:mm:ss") + ":线程" + threadID + "-->" + logText);
                sw.Close();
                sw.Dispose();                
            }
            finally
            {
                cacheLock.ExitWriteLock();
            }
         }
悠久的蒸汽机关的主页 悠久的蒸汽机关 | 初学一级 | 园豆:157
提问于:2015-06-05 11:00
< >
分享
所有回答(1)
0

使用Mutex

悠久的蒸汽机关 | 园豆:157 (初学一级) | 2015-06-05 16:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册