作者kight (山中雜草一隻鹿)
看板Visual_Basic
標題[.NET] 關於資料的寫入問題..
時間Tue Mar 22 16:19:09 2011
最近小弟在寫一個Case...
其中有部份必需要將資料寫入檔案中...
我是用StreamWriter每10秒將資料寫入一次..
但是問題來了,如果是採取寫完一次資料就關閉StreamWriter的方式..
那麼如果在即將要寫入資料的同時,有人正好同時複製這個檔案,
就會發生檔案有別的執行緒正在使用的錯誤而導致資料寫不進去..
後來我只能在寫完資料時,不關閉StreamWriter,讓程式持續抓著這個檔案..
這樣一來就可以我在寫入的同時,可以允許其它程式對這檔案做複製的動作
而不會影響到資料的寫入,但是問題來了,有人說這樣的不關閉StreamWriter其實不是很好
很容易造成不可預期的錯誤,其實我也想不到這樣到底那裡不好,因為當日期更換或是程式
停止時我都有下了關閉的指令,只是在程式執行中程式會咬著這個檔案不放....
我曾試過用SynLock去鎖住它..但是沒用,我只要在外部用複製還是會出問題...
請問還有更好的解決方法嗎???而且為何這樣不關閉StreamWriter的寫入不好??
懇請大家指導.......
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.20.115.210
1F:→ MOONRAKER:這是一種迷信吧!你可以問講話的那個人為什麼不好 :D 03/22 16:38
2F:→ MOONRAKER:基本上物件使用就像上廁所開燈一樣,出廁所就關燈,或 03/22 16:38
3F:→ MOONRAKER:dispose物件,這是好習慣,但當你不關燈或不關物件有明 03/22 16:38
4F:→ MOONRAKER:確理由的時候應該不用拘泥這種小節才對 :P 03/22 16:39
5F:→ kight:喔喔..了解..非常感謝你的解釋.... 03/22 16:56
※ 編輯: kight 來自: 211.20.115.210 (03/22 17:00)