2008-10-30 82 views
0

我有一個簡單的應用程序,它在每次點擊按鈕時寫入一個xml文件。一旦完成,我會在不久之後讀取Xml文件(如下所示,在下面的幾行中沒有插入方法)。最佳同步策略

當應用程序第一次運行時,xml文件被寫入/讀取,但如果再次按下按鈕,我會看到「文件正在被另一個進程使用」。我正在做整個刷新,關閉,處理我的流的東西,並打算使用ProcessMon來檢查哪個進程持有該文件。

以編程方式,避免此問題的最佳策略是什麼?

謝謝

+0

我們可以看到一些代碼嗎? – 2008-10-30 18:14:39

回答

1

只要確保文件被寫入,然後使用剛剛寫入文件的內存數據。
你不需要再讀一遍。

0

最簡單的解決辦法是隻鎖定所有訪問XML文件

object locker = new Object(); 

.... 

lock (locker) 
{ 
    //write xml file 
} 
0

我想我回答了這一個已經在其他地方的代碼。在關閉之前調用Flush()方法,並使用單獨的FileStream對象。我認爲FileStream對象是個問題,這就是爲什麼當你寫完Flush()時總是很好。

儘管如此,讀者還是沒有等效的方法。這就是爲什麼我最終使用FileStream對象。

Rudedog