WCF中的异步操作

时间:2015-08-03 22:43:47

标签: c# wcf asynchronous

我正在使用c#语言。 简单的WCF服务,它有方法" MethodA"这是耗费大量时间的繁重工作。因此,对于应用程序性能,我已创建服务代理并选择选项"生成异步操作"。 现在在客户端,我得到了更多的方法" BeginMethodA" ," EndMethodA"。 现在我打电话给#34; BegineMethodA"并传递适当的参数。 在客户端,我有回调方法,它实际上返回了" MethodA"的结果。我甚至不打电话给#34; EndMethodA"。 什么是重要的用途" EndMethodA"我需要调用此方法来完成操作吗?

1 个答案:

答案 0 :(得分:1)

是的,您需要致电EndMethodA。您可以在异步回调中执行此操作以获取实际结果(如果它具有返回值)。

请注意,有两种方法可以让这更容易。

  1. 只需使用Task即可。您实际上可以在WCF频道中等待。
  2. 如果您已有开始/结束方法,请使用Task.Factory.FromAsyncawait
  3. 从客户的角度来看,这两种方法都更加清晰,并允许您忽略旧的开始/结束模式中的丑陋/混乱。

相关问题