我有一个关于我应该在Windows窗体应用程序上使用的后台线程实现的选择的风格问题.目前我BackgroundWorker在一个具有无限(while(true))循环的表单上.在这个循环中,我WaitHandle.WaitAny用来保持线程打盹直到感兴趣的事情发生.我等待的一个事件句柄是一个" StopThread"事件,这样我就可以摆脱循环.来自我被覆盖的事件会发出此事件的信号Form.Dispose().
我读到的某个地方BackgroundWorker真的是用于那些你不想将UI绑定到并且具有有限结束的操作 - 比如下载文件或处理一系列项目.在这种情况下,"结束"是未知的,并且仅在窗口关闭时.因此,使用后台线程而不是BackgroundWorker为此目的更合适吗?