背景:我有幾個不同的線程,每個線程都需要寫入日誌文件(.txt)。我需要一種在線程之間共享這個文件的方式,但我不知道如何去做這件事,我已經閱讀了可能使用某種類型的隊列,並輪詢此隊列將消息推送到文本文件等。或者我是否需要鎖定文件,然後在隊列完成後纔將隊列中的消息寫入隊列?最佳做法 - 鎖定文件和線程之間的共享
目前我寫的是這樣的;
fileToWrite = new System.IO.StreamWriter(DeviceManager.logPath + correctDateTimeFormat);
但我收到錯誤消息;
The process cannot access the file 'filename' because it is being used by another process.
我只能假設多個線程正試圖同時訪問它。
任何人都可以指出我正確的方向,我應該採取什麼方法?
也許這符合你的需求? http://msdn.microsoft.com/en-us/library/system.io.memorymappedfiles.memorymappedfile.aspx – kenny
去Log4Net它已經這樣做 – GETah
log4net或(我更喜歡)NLog。雖然它不是'如何以正確的方式鎖定這些文件'的答案,但它確實解決了這個問題。 – hometoast