Sai*_*int 1 c# wcf asynchronous using-statement
在同步模型中,它很简单
using (MyServiceClient msc = new MyServiceClient())
{
msc.Method();
}
Run Code Online (Sandbox Code Playgroud)
但如果我必须等到这个方法的结束,然后做一些事情,它就无法工作
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
}
Run Code Online (Sandbox Code Playgroud)
另外如何在using语句中调用异步mehod ?
你不应该这样做.
您应该MyServiceClient正常实例化,然后Dispose在异步回调处理程序中实例化.
这是确保在调用回调处理程序后实例仍然存在的唯一方法,并且在回调处理程序完成其工作后它将被销毁.
| 归档时间: |
|
| 查看次数: |
658 次 |
| 最近记录: |