WCF服务:异步方法或BackgroundWorker

时间:2012-07-30 12:41:59

标签: c# multithreading wcf design-patterns asynchronous

如果某种方法需要花费大量时间,我应该将其实现为异步吗?

或者可能在另一个Thread中使用同步(例如使用BackgroundWorker)?

1 个答案:

答案 0 :(得分:4)

当你有工作项目应该在后台处理并且你在完成时关心时,会使用异步调用

如果您有一个在后台运行且需要与UI交互的任务,请使用BackgroundWorker。如果你在完成任务时不在乎,就使用它。编组数据和对UI线程的方法调用的任务是通过其基于事件的模型自动处理的。

如果(1)您的程序集尚未引用System.Windows.Form程序集,(2)您需要将该线程作为前台线程,或(3)您需要操纵线程优先级,请避免使用BackgroundWorker。