首页 > 编程 > C# > 正文

C#实现多线程写入同一个文件的方法

2019-10-29 21:39:03
字体:
来源:转载
供稿:网友

这篇文章主要介绍了C#实现多线程写入同一个文件的方法,涉及C#多线程操作文件读写的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了C#实现多线程写入同一个文件的方法。分享给大家供大家参考。具体实现方法如下:

 

  1. namespace WfpApp 
  2. public partial class Form2 : Form 
  3. object obj = new object(); 
  4. public Form2() 
  5. InitializeComponent(); 
  6. System.Threading.Thread thread; 
  7. string[] users = new string[] { "zkk""admin""administrator""soft""iany""nec""necsl" }; 
  8. for (int i = 0; i < users.Length; i++) 
  9. thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(WriteLock)); 
  10. thread.Start(users[i]); 
  11. public void WriteThread(object user) 
  12. string path = System.Windows.Forms.Application.StartupPath + "//app//"
  13. if (!System.IO.Directory.Exists(path)) 
  14. System.IO.Directory.CreateDirectory(path); 
  15. path = path + "//" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; 
  16. StringBuilder sb = new StringBuilder(); 
  17. sb.AppendLine("----------------------------" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "--------------------------"); 
  18. sb.AppendLine(user.ToString()); 
  19. sb.AppendLine("---------------------------------------------------------------------------------"); 
  20. sb.AppendLine(); 
  21. //if (!System.IO.File.Exists(path)) 
  22. // System.IO.File.Create(path).Close(); 
  23. System.IO.FileStream fileStream = new System.IO.FileStream(path, System.IO.FileMode.Append, System.IO.FileAccess.Write, System.IO.FileShare.ReadWrite); 
  24. System.IO.StreamWriter sw = new System.IO.StreamWriter(fileStream, Encoding.Default); 
  25. sw.Write(sb.ToString()); 
  26. sw.Close(); 
  27. sw.Dispose(); 
  28. fileStream.Close(); 
  29. fileStream.Dispose(); 
  30. public void WriteLock(object user) 
  31. lock (obj) 
  32. string path = System.Windows.Forms.Application.StartupPath + "//app//"
  33. if (!System.IO.Directory.Exists(path)) 
  34. System.IO.Directory.CreateDirectory(path); 
  35. path = path + "//" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; 
  36. StringBuilder sb = new StringBuilder(); 
  37. sb.AppendLine("----------------------------" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "--------------------------"); 
  38. sb.AppendLine(user.ToString()); 
  39. sb.AppendLine("---------------------------------------------------------------------------------"); 
  40. sb.AppendLine(); 
  41. if (!System.IO.File.Exists(path)) 
  42. System.IO.File.Create(path).Close(); 
  43. System.IO.FileStream fileStream = new System.IO.FileStream(path, System.IO.FileMode.Append, System.IO.FileAccess.Write); 
  44. System.IO.StreamWriter sw = new System.IO.StreamWriter(fileStream, Encoding.Default); 
  45. sw.Write(sb.ToString()); 
  46. sw.Close(); 
  47. sw.Dispose(); 
  48. fileStream.Close(); 
  49. fileStream.Dispose(); 

希望本文所述对大家的C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表