同时开了很多线程,线程出错会把出错信息写到一个文本文件里。但偶尔会出现错误。
下面是我的代码,我总觉得似乎哪里有问题。请指点:
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
{ }
}
下面是我的代码,我总觉得似乎哪里有问题。请指点:
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
{ }
}
多个执行线程,分割文件
private static object objectLock = new object();
lock (objectLock)
{}private static Mutex mut = new Mutex();
mut.Waitone();mut.ReleaseMutex();