文章分類

C# (27) ASP.NET (13) SQL (7) ORACLE (5) JAVA (2) SQLSERVER2008 (2) 大家都在問的事 (2) ACCESS (1) ANDRIOD (1) JQUERY (1) python (1) 雜談 (1)

關於我自己

我的相片
程式初心者 JAVA, ASP.NET, C# ,SQL

2011年7月19日 星期二

[C#]執行緒寫log錯誤

寫程式難免要寫LOG檔來紀錄一些ERROR或流程
但是如果寫在多執行緒裡面的時候, 就會造成兩隻執行緒同時開啟同一個檔案的困境
程式會因為這樣子死掉, 爬了一下文, C#裡有內鍵LOCK這個東西, 來確保, 同時只能有一支程式
來讀寫文字檔寫入LOG

範列如下:

static object lockMe = new object();
public static void WriteLog(string sErrMsg) 
{
lock (lockMe) 
{
using (StreamWriter sw = 
new StreamWriter(pathName + sErrorTime + extName, true)) 
{
sw.WriteLine(sErrMsg);
sw.Close();
}
}
}

沒有留言:

張貼留言