我是WCF的新手,想知道它使同步调用或异步调用有什么区别,如果有人会用示例解释它会非常有用
感谢名单
答案 0 :(得分:6)
来自客户端的异步调用与.NET Framework中的任何ohter异步操作相同。当您从线程到WCF服务进行同步调用时,线程将挂起。这意味着在服务调用返回响应或异常之前,线程将无法执行任何其他工作。相比之下,异步调用将在单独的线程(由框架创建)中运行,因此您的主线程将能够继续运行,并将通过回调(事件)通知异步调用的完成。
假设您将WinForms应用程序作为WCF客户端并且您想要调用WCF服务。如果您进行同步调用将需要几秒钟才能完成,您的应用程序将暂停此处理时间=用户将无法对应用程序执行任何操作(仅从任务管理器中删除它)。但是如果你使用异步调用它将是完全交互的,因为异步操作将由后台线程处理。因此,异步操作适用于交互式解决方案,或者您需要并行执行多个操作。
例如,从MSDN检查此How to article。
为了完整性,我描述了同步和异步调用之间的区别=客户端上的同步和异步处理。 WCF还支持同步和异步操作=服务器上的同步和异步处理。
答案 1 :(得分:3)
WCF已经完成了异步支持。可能有各种使用异步调用的方案。
如果您的应用程序需要进行WCF调用,这反过来会耗费一些时间,那么进行异步调用可能会更好。这将立即控制用户,以便应用程序不会挂起。一旦后台WCF调用完成,它将让应用程序用户知道已完成。
假设您有一个WCF,它会在表中插入一些行。假设WCF要求输入tablename并将行作为参数插入。因此,如果您需要调用WCF 3次以将行插入3个单独的表中,或许最好启动3个异步调用,这些调用可以并行工作,而不是逐个顺序地插入3个表中的行。
获得一些好的阅读