同时开了很多线程,线程出错会把出错信息写到一个文本文件里。但偶尔会出现错误。
下面是我的代码,我总觉得似乎哪里有问题。请指点:
        public static Object objDoubt = new Object();
        /// <summary>
        /// 写入出错日志
        /// </summary>
        /// <param name="str"></param>
        static public void writeDoubtLog(string str)
        {
            try
            {        
                if (Monitor.TryEnter(objDoubt, 3000))
                {
                    Monitor.Enter(objDoubt);            
                    StreamWriter w = new StreamWriter(doubtFile, true);
                    w.WriteLine(str);
                    w.Close();
                    Monitor.Exit(objDoubt);
                    Monitor.Pulse(objDoubt);
                }
            }
            catch (Exception e)
            {
                tools.threadWriteErrorLog(e.ToString());
            }
            finally
            {            }
        }