![]() |
1
76
BackgroundWorker派生自组件。组件实现IDisposable接口。这反过来又使BackgroundWorker继承Dispose()方法。 从组件派生对于Windows窗体程序员来说是一种方便,他们可以将BGW从工具箱放到窗体上。一般来说,组件可能有一些东西需要处理。Windows窗体设计器会自动处理此问题,请在designer.cs文件中查找“components”字段的窗体。它自动生成的Dispose()方法为所有组件调用Dispose()方法。 但是,BackgroundWorker实际上没有任何需要处理的成员。它不重写Dispose()。它的基本实现Component.Dispose()只确保该组件从“components”集合中删除。并引发已处置事件。但不会处理任何东西。
您不必调用Dispose() . |
![]() |
2
13
游戏进行得很晚,但我遇到了一个与你的问题相关的场景,我想我会和你分享。如果您在类级别创建worker,并在不关闭应用程序的情况下在后续操作中重用它,如果您在完成后不删除事件,它们将在每次后续执行中递增并运行多次。
如果没有以上我的嫁妆火一次,两次第二次,等等,这可能是一个没有大脑的大多数人,但它花了我一点来找出它,所以希望这将有助于其他人了。 |
![]() |
3
2
这个 article
|
![]() |
4
0
我通常使用窗体生命周期创建我的后台处理程序,重用它们,并让设计器代码处理窗体上的处理。少去想。 |
![]() |
5
0
在实践中,我发现您可能需要创建一个容器实例,并将worker(或其他公司)添加到其中,如果有人知道一种更正式的方法来实现这一点,请大声喊叫!! 主键:-)
|
![]() |
danabnormal · BackgroundWorker的位置 7 年前 |
![]() |
bask185 · c#如何在此设置中实现后台? 7 年前 |
![]() |
heroxav · Sidekiq在worker中找不到对象 8 年前 |
![]() |
Pandi · 如何在单击“取消”按钮时取消DoWork中的所有方法? 8 年前 |