在DoWork事件中完成处理工作后,是否有必要处理后台工作程序,或者作为托管对象,这最终会自动处理?
以前,我在timer_elapsed
内执行一些功能,即每30秒执行一次任务。
现在,我在BackGround Worker的DoWork
事件中进行相同的处理。如何在每30秒(例如)bgworker.RunWorkerAsync();
如果我把这个bgWorker.RunWorkerAsync()
独立timer_elapsed
,我怎么在每个计时器过去之后处理它?</ p>
答案 0 :(得分:3)
是否有必要在......之后解雇背景工作者。
没有。 BackgroundWorker确实实现了IDisposable接口,但仅作为从Component继承的一揽子功能。它没有任何意义。
如果我将此
bgWorker.RunWorkerAsync()
放入timer_elapsed
如果你应该这样做,那就太可疑了。但是如果你这样做,那么每次都要创建一个新的Backgroundworker。
背景工作者是一个相对“轻”的对象,它没有资源。该线程是从ThreadPool借来的。
如果你是校长的坚持者,你可以在创建一个旧的之前调用旧的一个Dispose()。但它不会产生太大的影响。