将工作委派给多个线程的模式
我正在更新一个 WinForms 应用程序,该应用程序使用 BackgroundWorker 在按下按钮时执行一些有用的操作。
问题是,“有用的事情”会按顺序迭代一长串要做的事情,并且可能需要相当长的时间才能完成。
我正在考虑让按钮按下事件创建多个BackgroundWorker,而不是一个,或者让当前的BackgroundWorker 创建额外的BackgroundWorker 来完成实际工作。
这两种方法对我来说似乎相当相当。
两者都有优点/缺点吗?有更好的方法吗?
I'm updating a WinForms application that uses a BackgroundWorker to do something useful when a button is pressed.
The trouble is, "something useful" iterates sequentially through a long list of things to do, and can take quite a while to complete.
I'm considering having the button press event create multiple BackgroundWorkers instead of one or having the current BackgroundWorker create additional BackgroundWorkers to do the actual work.
Both approaches seem fairly equivalent to me.
Are there advantages/disadvantages to either one? Is there a better way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否考虑过将后台工作程序与 Parallel.For 一起使用? (Parallel.For @ msdn)
管理多个工作人员可能是一个问题 - 这就是并行扩展所做的事情......
PK :-)
Have you looked at using the background worker with
Parallel.For
? (Parallel.For @ msdn)Managing the multiple workers could be an issue - that's the kind of thing the Parallel extensions do...
PK :-)