在我看来,我可以通过三种不同的方式发出和处理服务电话:
public void ServiceCallNoCallback() { var result = service.BeginCall(**); result.AsyncWaitHandle.WaitOne(); var devicePageDto = service.EndCall(result); }
public void ServiceCallWithCallback() { deviceService.BeginGetDevicePage(Callback); } public void Callback(IAsyncResult result) { try { var callResult = service.EndCall(result); } catch(Exception ex) { Console.WriteLine("ex: " + ex.Message); } }
后一种方法用于silverlight应用程序的上下文中。但真的很慢。多次调用这些方法确实会堵塞所有内容。 为什么是这样?是什么让后一种异步方法与第一种相比变得如此缓慢?