首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法关闭FileStream导致应用程序崩溃

无法关闭FileStream导致应用程序崩溃
EN

Stack Overflow用户
提问于 2014-08-27 05:40:30
回答 2查看 136关注 0票数 4

在对FileStream对象调用Close()方法之前,我拔下了底层的U盘。当Close()方法试图刷新未写入的数据时,它将抛出异常。如果我抑制了异常(catch,但不要重新抛出),那么在任意一段时间后终结器都会被调用。它将尝试刷新未写入的数据,但会遇到相同的错误,从而导致应用程序终止。

有没有一种标准的方法来处理失败的Close()调用?似乎如果Close()遇到错误,您要么1)泄漏文件句柄,要么2)导致应用程序终止,这两种情况都是不可接受的。

EN

回答 2

Stack Overflow用户

发布于 2014-08-27 06:30:29

如果不是调用Close(),而是调用Dispose(),或者将代码包装在using中,您应该能够避免来自GC的异常,因为终结器将不再尝试处理流。

票数 1
EN

Stack Overflow用户

发布于 2014-08-27 05:46:24

您可以使用GC.SuppressFinalize来禁止终结器执行,这样以后当对象被垃圾回收时,您就不会收到错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25515587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档