【发布时间】:2010-12-03 04:08:02
【问题描述】:
关于我应该在 Windows 窗体应用程序上使用的后台线程实现的选择,我有一个风格问题。目前,我在一个具有无限 (while(true)) 循环的表单上有一个 BackgroundWorker。在这个循环中,我使用WaitHandle.WaitAny 来保持线程打盹,直到发生有趣的事情。我等待的事件句柄之一是“StopThread”事件,这样我就可以跳出循环。从我的覆盖Form.Dispose() 发出此事件。
我在某处读到BackgroundWorker 确实适用于您不想与 UI 绑定并具有有限结束的操作 - 例如下载文件或处理一系列项目。在这种情况下,“结束”是未知的,只有当窗口关闭时。因此,我是否更适合为此目的使用后台线程而不是 BackgroundWorker?
【问题讨论】:
标签: .net winforms multithreading backgroundworker