2

在我完成 DoWork 事件中的处理工作之后是否有必要处理后台工作人员,或者作为一个托管对象,它最终会自动被处理?

以前,我在timer_elapsedie 中执行一些功能,每三十秒执行一次任务。现在,我在 BackGround Worker 的DoWork事件中进行相同的处理。如何在每 30 秒后循环执行此 bgWorker 事件(例如)bgworker.RunWorkerAsync();

如果我把这个bgWorker.RunWorkerAsync()独立timer_elapsed的,我如何在每个计时器过去后处理它?

4

1 回答 1

3

是否有必要在...之后处理掉后台工作人员

不,BackgroundWorker 确实实现了 IDisposable 接口,但只是作为从 Component 继承的一个全面特性。它没有任何目的。

如果我把这个放进bgWorker.RunWorkerAsync()timer_elapsed

你是否应该这样做值得怀疑。但是如果你这样做了,每次只创建一个新的 Backgroundworker。

Backgroundworker 是一个相对“轻量级”的对象,它不包含任何资源。线程是从 ThreadPool 借来的。

如果您是校长的忠实拥护者,您可以在创建新的之前对旧的调用 Dispose()。但这不会有太大的不同。

于 2012-06-02T15:08:33.330 回答