C#实现多线程写入同一个文件的方法
本文实例讲述了C#实现多线程写入同一个文件的方法。分享给大家供大家参考。具体实现方法如下:
namespaceWfpApp { publicpartialclassForm2:Form { objectobj=newobject(); publicForm2() { InitializeComponent(); System.Threading.Threadthread; string[]users=newstring[]{"zkk","admin","administrator","soft","iany","nec","necsl"}; for(inti=0;i<users.Length;i++) { thread=newSystem.Threading.Thread(newSystem.Threading.ParameterizedThreadStart(WriteLock)); thread.Start(users[i]); } } publicvoidWriteThread(objectuser) { stringpath=System.Windows.Forms.Application.StartupPath+"\\app\\"; if(!System.IO.Directory.Exists(path)) System.IO.Directory.CreateDirectory(path); path=path+"\\"+DateTime.Now.ToString("yyyyMMdd")+".txt"; StringBuildersb=newStringBuilder(); sb.AppendLine("----------------------------"+DateTime.Now.ToString("yyyy-MM-ddHH:mm:ss.fff")+"--------------------------"); sb.AppendLine(user.ToString()); sb.AppendLine("---------------------------------------------------------------------------------"); sb.AppendLine(); //if(!System.IO.File.Exists(path)) //System.IO.File.Create(path).Close(); System.IO.FileStreamfileStream=newSystem.IO.FileStream(path,System.IO.FileMode.Append,System.IO.FileAccess.Write,System.IO.FileShare.ReadWrite); System.IO.StreamWritersw=newSystem.IO.StreamWriter(fileStream,Encoding.Default); sw.Write(sb.ToString()); sw.Close(); sw.Dispose(); fileStream.Close(); fileStream.Dispose(); } publicvoidWriteLock(objectuser) { lock(obj) { stringpath=System.Windows.Forms.Application.StartupPath+"\\app\\"; if(!System.IO.Directory.Exists(path)) System.IO.Directory.CreateDirectory(path); path=path+"\\"+DateTime.Now.ToString("yyyyMMdd")+".txt"; StringBuildersb=newStringBuilder(); sb.AppendLine("----------------------------"+DateTime.Now.ToString("yyyy-MM-ddHH:mm:ss.fff")+"--------------------------"); sb.AppendLine(user.ToString()); sb.AppendLine("---------------------------------------------------------------------------------"); sb.AppendLine(); if(!System.IO.File.Exists(path)) System.IO.File.Create(path).Close(); System.IO.FileStreamfileStream=newSystem.IO.FileStream(path,System.IO.FileMode.Append,System.IO.FileAccess.Write); System.IO.StreamWritersw=newSystem.IO.StreamWriter(fileStream,Encoding.Default); sw.Write(sb.ToString()); sw.Close(); sw.Dispose(); fileStream.Close(); fileStream.Dispose(); } } } }
希望本文所述对大家的C#程序设计有所帮助。