首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么时候BackgroundWorker线程会被杀死?

什么时候BackgroundWorker线程会被杀死?
EN

Stack Overflow用户
提问于 2010-08-02 11:40:18
回答 1查看 1.3K关注 0票数 1

我正在开发C# .NET windows窗体应用程序。其中我有一个主窗口和几个其他窗口窗体类(用作对话框)。我有一个计算密集型任务(需要3-4分钟)。当用户从菜单中选择此任务时,将弹出一个新的对话框(窗口),并获取用户所需的参数,并具有一个显示任务进度的进度条。我在此对话框中使用BackgroundWorker来执行计算和报告进度。此BackgroundWorker还将所有中间值写入名为status.log的日志文件。

问题是,当用户关闭此对话框时,需要关闭日志文件。我猜与这个对象相关的BackgroundWorker也会被销毁。因此,我已经为这个对话框的FormClosed事件编写了甚至处理程序,并在其中关闭了文件。但看起来到那时BackgroundWorker还没死。我的意思是,BackgroundWorker现在抛出了一个异常,文件是关闭的,不能写入关闭的流。

如何处理这种情况?我应该什么时候关闭文件流?什么时候BackgroundWorker线程会被杀死?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-02 11:42:14

后台工作线程不会被终止:它们被返回到线程池。

处理RunWorkerCompleted事件。

更新:响应您的评论:在窗体关闭事件中,通知后台工作人员取消。请参阅.NET: How to wait for a BackgroundWorker to cancel?的接受答案

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

https://stackoverflow.com/questions/3384850

复制
相关文章

相似问题

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