c# - WCF 服务 : Asynchronous method or BackgroundWorker

标签 c# multithreading wcf design-patterns asynchronous

如果某个方法需要很多时间,我应该将其实现为异步的吗?

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

最佳答案

当您有应该在后台处理的工作项并且您关心它们何时完成时,使用异步调用

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

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

关于c# - WCF 服务 : Asynchronous method or BackgroundWorker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11721823/

相关文章:

c# - 不是顶级窗体的窗体不能显示为模式对话框。在调用 showDialog 之前从任何父窗体中删除窗体

c# - 在子目录中托管 WCF Web 服务

javascript - AJAX与WCF获取跨域导致parseError

c# - 使用本地 SMTP 服务器从 Azure 发送电子邮件

C#:根据 bool 值选择运算符(一行)

c# - 许多条目带有 OnItemsChanged(),如何删除旧条目

c# - 如何在 CaSTLe Windsor WcfClient 上设置超时属性

c# - WCF 如何处理实例化和并发性?

java - 如果我从不使用 ThreadSafeClientConnManager 调用 closeExpiredConnections 会发生什么

ruby - 了解赛璐珞并发