【发布时间】:2010-02-03 23:06:09
【问题描述】:
总的来说,我对 .NET 编程和多线程比较陌生,想知道是否可以使用 .NET 提供的 BackgroundWorker 来生成工作线程以在控制台应用程序中执行某些工作?从在线的各种文档中,我看到这个类的意图更多的是面向 UI 的应用程序,你想在后台做一些工作,但保持 UI 响应,并报告进度,如果需要取消处理等。
就我而言,基本上我有一个控制器类,我想在其中生成多个工作线程以进行一些处理(限制使用信号量生成的工作线程的最大数量)。然后我希望我的控制器类阻塞,直到所有线程都完成处理。所以在我启动一个工作线程做一些工作之后,我希望线程能够在处理完成时通知控制器线程。我看到我可以使用后台工作类,并处理 DoWork 和 RunWorkerCompleted 事件来完成此任务,但是想知道这是否是个好主意?有没有更好的方法来实现这一点?
【问题讨论】:
-
虽然它可能无法帮助您解决这个问题,但您可能会对 .NET Framework 4 的新并行编程功能感兴趣。需要关注的东西 - 它很快就会发布。 msdn.microsoft.com/en-us/concurrency/default.aspx
标签: .net multithreading backgroundworker