2011-07-04 27 views
0

我在.aspx表單中有一個網頁表單,它接受用戶詳細信息,然後將詳細信息寫入位於服務器上的C#中的CSV文件。我的問題是,如何控制對CSV文件的多次寫入,這樣數據不會混亂?我必須絕對使用服務器上的CSV文件,數據庫或其他方式來記錄它不是我的選擇。編寫ASP.NET併發問題的CSV文件

環顧四周,我看到使用Mutex可能會有用。我想知道我在尋找最有效和最簡單的解決方案時還有哪些其他選擇?提前道歉,因爲我是ASP.NET和C#的新手。

回答

2

使用互斥/鎖是最簡單的方法;假設您的網站是csv文件的唯一編寫者。由於沒有代碼顯示,我假設你有CsvWriter類:

public class CsvWriter 
{ 
    const string path = "myfile.csv"; 

    static object synch = new Object(); 

    public void AppendCsv(string newData) 
    { 
     lock (synch) 
     { 
      File.AppendAllText(path, newData); 
     } 
    } 
} 
+0

+1謝謝,這很有用。在代碼中你有一個「對象同步」,這只是控制對文件訪問的控制對象。它沒有其他功能?只是以爲我會檢查以確保我沿着正確的路線前進。 – adamjmarkham

+0

是的,它僅用於控制對文件的訪問。一次只有一個線程可以擁有「同步」(通過鎖定)。 –