棒!讀寫文件流加鎖示例,但是不知道怎麼管時序

` private static ReaderWriterLockSlim _rwl = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);//暫時不知道和下面的有啥區別

	private void Form1_Load(object sender, EventArgs e)
	{
			Thread thread1 = new Thread(() =>
			{
				while (true)
				{
					SaveCSV("a", "E:\\Project.csv");
				}
			});
			Thread thread2 = new Thread(() =>
			{
				while (true)
				{
					SaveCSV("b", "E:\\Project.csv");
				}
			});
		thread1.Start();
		thread2.Start();
	}
	
	static ReaderWriterLockSlim LogWriteLock = new ReaderWriterLockSlim();
	public void SaveCSV(String Columns, String fileName)
	{
		try
		{
			LogWriteLock.EnterWriteLock();//加鎖
			if (!File.Exists(fileName))
			{
				using (FileStream fs = new FileStream(fileName, System.IO.FileMode.CreateNew))
				{
					using (StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default))
					{
						sw.WriteLine("NG模組碼,托盤碼,NG代碼"); //寫入硬盤
						sw.NewLine = Environment.NewLine;
					}
				}
			}
			else
			{
				using (FileStream fs = new FileStream(fileName, System.IO.FileMode.Append))
				{
					using (StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default))
					{
						sw.WriteLine(Columns); //寫入硬盤
						sw.NewLine = Environment.NewLine;
					}
				}
			}
		}
		catch (Exception ex)
		{

		}
		finally
		{//解鎖
			LogWriteLock.ExitWriteLock();
		}
	}`
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章