gpt4 book ai didi

c# - 当用户关闭表单时,我是否必须关闭正在运行的 BackgroundWorkers?

转载 作者:行者123 更新时间:2023-12-02 22:30:18 24 4
gpt4 key购买 nike

从这里Does closing the application stops all active BackgroundWorkers?好像不是。

但从这里How to stop BackgroundWorker on Form's Closing event?好像是的。

那是什么?

(编辑:我意识到 BackgroundWorker 可能会异常退出。但这有什么问题?这里的重点不是不要让占用资源的运行线程离开吗?)

最佳答案

关闭 Form 不会停止由该表单启动的所有后台工作程序。

当整个应用程序结束时,它停止所有后台线程。

关闭主窗体(除非您已修改 Main 方法以执行其他操作)将结束整个应用程序。

您引用的每个问题都正确无误。如果关闭主窗体,则整个应用程序将结束,后台工作程序将自行关闭。如果正在关闭的表单不是主表单,而是其他表单,并且您希望它开始停止的后台工作程序,那么您需要自己这样做。

还值得注意的是 second link您提供的要求更复杂一些。在那篇文章中很清楚,关闭表单(如果它是主表单)将停止后台线程的执行。 OP 试图在那里做的是告诉后台线程,“嘿,是时候完成了,我们在这里完成了”,然后让表单等待后台线程可以很好地完成清理工作,而不仅仅是当线程正在做某事时退出并强行中止线程。

关于c# - 当用户关闭表单时,我是否必须关闭正在运行的 BackgroundWorkers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12393195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com