c# - 如何在using语句中调用异步wcf方法?

标签 c# wcf asynchronous using-statement

在同步模型中它很简单

using (MyServiceClient msc = new MyServiceClient())
{
   msc.Method();
}

但是如果我必须等到这个方法结束,然后再做一些事情,那是行不通的

private void EventHandler<MethodCompletedEventArgs> myEventHandler = new EventHandler<MethodCompletedEventArgs>(methodBody);

using (MyServiceClient msc = new MyServiceClient())
{
   msc.MethdCompleted += myEventHandler;
   msc.BeginMethod();
}

private void MethodBody()
{
//exception: client state is aborted
}

还有如何在using语句中调用异步方法?

最佳答案

你不应该这样做。

您应该正常实例化 MyServiceClient,然后在异步回调处理程序中对其进行Dispose

这是确保实例在调用回调处理程序后仍然存在并且在回调处理程序完成其工作后销毁的唯一方法。

关于c# - 如何在using语句中调用异步wcf方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12897743/

相关文章:

c# - Newtonsoft.Json 用于反序列化的自定义根名称

c# - A a =new A() 和 A a=null 的区别

c# - 在消息处理程序中添加属性值

c# - 在 C# : Vector, 方向(单位向量)、点中实现这 3 个类的最佳方式

c# - 首先为 EF 代码的 CTP5 关闭 ProxyCreationEnabled 有什么缺点

WCF:每个业务实体的单独服务

javascript - 如何禁止按下 "next"按钮,直到所有输入都更新

wcf - 可怕的 "could not find a base address that matches scheme http"如何让它与 SSL 一起工作?

javascript - Angular Promise,为什么在这种情况下我会得到 'then' 的未定义?

javascript - 异步功能控制台日志记录乱序