none
兩個執行緒讀到同一個檔案 RRS feed

  • 問題

  • 大大您们好,我想請問一下,我製作一個.xml的檔案,因為我有分兩個執行緒,而他們都會用到這個檔案,因為一個要做儲存動作,另一個要做顯示動作(概略說他們個別需要這個檔案的原因),問題是,這樣應該會造成當它們一起讀到檔案時,程式會發生錯誤("顯示另一個程式正在使用中"),請問大大您们可以給我建議讓程式改善的方法嗎,謝謝
    2009年3月26日 上午 08:17

解答

  • XmlDocument.Load 的多載可以從 Stream 讀入,所以將檔案內容讀入 MemoryStream 再給 Xml 讀取,就不會造成檔案鎖定。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    • 已標示為解答 冰糖旋風 2009年3月30日 上午 12:28
    2009年3月26日 上午 09:00
  • 如果同時間只會讀取檔案可以直接XmlDocument.Load
    要是同時間可能寫入與讀取
    還是Lock一下吧
    • 已標示為解答 冰糖旋風 2009年3月30日 上午 12:28
    2009年3月26日 上午 09:08
  •  這要看你的架構在研究怎麼處理了.
    如果是我目前看到的問題.
    因該是一隻程式裡有二個執行緒.
    如果是這種情形.將檔案讀到記憶體中,關閉檔案.然後二個執行緒去讀寫這個記憶體串流.適當作Lock動作.找個良辰將串流寫回檔案.
    • 已標示為解答 冰糖旋風 2009年3月30日 上午 12:28
    2009年3月26日 上午 09:26

所有回覆