如果某个方法需要很多时间,我应该将其实现为异步的吗?
或者可能在另一个线程
中使用同步(例如使用BackgroundWorker
)?
最佳答案
当您有应该在后台处理的工作项并且您关心它们何时完成时,使用异步调用
如果您有单个任务在后台运行并且需要与 UI 交互,请使用 BackgroundWorker。如果您不在乎他们何时完成任务,请使用它。编码数据的任务和对 UI 线程的方法调用是通过其基于事件的模型自动处理的。
如果 (1) 您的程序集尚未引用 System.Windows.Form 程序集,(2) 您需要线程成为前台线程,或 (3) 您需要操纵线程优先级,请避免使用 BackgroundWorker。
关于c# - WCF 服务 : Asynchronous method or BackgroundWorker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11721823/