作者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)