2017-06-02 49 views
0

我有兩個不同的進程共享相同的文件,第一個是讀者,第二個是作家。我在C#中使用StreamWriter和StreamReader,但我有一個異常「進程無法訪問文件'文件名',因爲它正在被另一個進程使用」。 我怎樣才能實現線程安全?如何確保線程安全,當我有兩個進程使用相同的文件?

+0

鎖定資源 – Rahul

+0

有在你的情況下不需要_thread safety_,應該有一個進程間同步。 – dymanoid

+0

當你創建StreamReader時,確保你使用了一個接受'FileAccess'參數的構造函數,然後傳遞'FileAccess.Read'。這應該允許讀者在作者寫作時閱讀。 – adv12

回答

4

這與線程安全無關,但進程間同步。使用進程間鎖(稱爲命名Mutex

0

嗯,我找到了解決辦法,爲我所用的作家:

using (StreamWriter sw = new StreamWriter(Path)) 
       { 
        //WorkTodo 
       } 

而對於讀者

using (StreamReader sr = new StreamReader(Path)) 
       { 
        //WorkTodo 
       } 
相關問題