本人最近的項目中需要用到日志文件,由於對日志文件的讀寫可能比較頻繁, 為了克服讀寫沖突,我們在設計中引入了Singleton模式。
首先,設計日志文件對象,包括Open和Save方法:
再設計LogHandler類,用來讀寫日志文件:
LogHandler采用單例模式,保證了同一時間內只有一個線程對日志文件進行操作,讀/寫方法中分別用Lock互斥鎖鎖定這個唯一的對象,這樣就避免了日志文件的讀寫沖突,具體可參看MSDN對於Lock關鍵字的介紹。當然,C#提供的ReaderWriterLock讀寫鎖也可以解決這一問題。