Xml檔案併發讀寫的解決方法

2021-09-22 06:01:02 字數 971 閱讀 7980

之前對xml的操作大都是通過xmldocument物件來進行,但是這樣的情況對於沒有併發的是非常合適的,最近遇到了併發讀寫xml檔案的情況。通過檔案流來操作能解決大部分的併發情況,對於極端的情況會有問題。

測試方法:開兩個執行緒讀寫同乙個檔案。主要是filestream物件裡面的三個引數filemode,fileaccess,fileshared的列舉值選擇。

class

program

static

void

writexml()

]}"));""

);"");

using (filestream fs = new

filestream(path, filemode.create, fileaccess.write, fileshare.read))

thread.sleep(

200);}}

static

void

readxml()

']/data

", "bb"

)); console.writeline(datanode.innertext);

}thread.sleep(

100);}}

}

這樣的情況還是比較正常,在幾百毫秒的情況下,這樣的能夠滿足大部分要求了。

另:還遇到了關於dictionary併發的問題,宣告了乙個靜態的dictionary物件,通過深度複製來保證併發讀寫不會拋異常。處理的**如下:

dictionary> newdic = new dictionary>();

using (memorystream ms = new memorystream())

關於物件的複製可以參考這篇文章:淺複製(shallow copy)與深複製(deep copy)

上面是最近工作中遇到的問題,記錄下方便以後查閱。

張雪飛

Xml檔案併發讀寫的解決方法

之前對xml的操作大都是通過xmldocument物件來進行,但是這樣的情況對於沒有併發的是非常合適的,最近遇到了併發讀寫xml檔案的情況。通過檔案流來操作能解決大部分的併發情況,對於極端的情況會有問題。測試方法 開兩個執行緒讀寫同乙個檔案。主要是filestream物件裡面的三個引數filemod...

PYTHON讀寫xml檔案的方法

要生成的xml檔案格式如下 python sample xml thing ma xiaoju springs widgets,inc.first i think widgets are greate.you should buy lots of them forom spirngy widgts,...

併發競態的解決方法

有多個程序同時訪問同乙個驅動程式中的臨界資源的時候,競態就會產生了。競態產生的根本原因 1.對於單核cpu,核心支援搶占。2.多核cpu,核與核之間會產生競態 3.中斷和程序間也會產生競態 4.中斷和中斷間產生競態 中斷巢狀可以 arm架構不支援 一 中斷遮蔽 了解 中斷遮蔽只適合在單核cpu。中斷...