public class Log
{
FileStream fs;
StreamWriter sw;
Mutex m;
public Log(string path)
{
//
// TODO: 在此处添加构造函数逻辑
//
fs=new FileStream(path,FileMode.Append,FileAccess.Write,FileShare.Write);
sw=new StreamWriter(fs);
m = new Mutex(false, "MyMutex");
} public void WriteLog(string format,string name)
{
m.WaitOne();
sw.WriteLine(format,list);
sw.Flush();
m.ReleaseMutex(); }
}
}启动两个进程利用log类写同一个文件,发现有的日志条目是不全的,觉得这个mutex不好用,这是为什么呢?
有什么实现进程互斥的好办法呢?俺是c#初学者 谢谢
解决方案 »
- 救命:splitcontainer 中间间距问题
- 汇总功能如何实现
- 如何抓取带有用户名密码的网页
- 紧急求助:TreeView(Winform)怎么用非递归的算法实现一棵树的加载?
- 关于绘图的问题,急待解决!!
- 未处理的"System.InvalidOperationException"类型的异常出现在system.windows.forms.dll中。其它信息: DragDrop 注册失败。
- C#中如何实现禁用键盘空格键!!!
- 主从表关联问题
- 100分,谁见过这样的算法。如何解密!谢谢!
- 怎樣過濾dataset1.tables[0]使某一column的數據不重複
- Remoting委托问题,请大家帮忙。
- 如何判断一个应用程序在系统中第一次运行?
public void WriteLog(string format,string name)
{
lock(this)
{
m.WaitOne();
sw.WriteLine(format,list);
sw.Flush();
m.ReleaseMutex();
}
}
我的程序是单线程的,所以应该不存在lock的问题我只是想如果启动两个这样的进程,如何实现同步大家帮我看看 谢谢