我的silverlight应用程序异步调用webservice方法,如下所示:
gServer = new ServiceReference1.Service1SoapClient();
gServer.Retrieve_DataSet_ListCompleted += new EventHandler<ServiceReference1.Retrieve_DataSet_ListCompletedEventArgs>(Retrieve_Data_List_Completed);
Retrieve_Data_List_Completed
方法是否在另一个线程中运行?
答案 0 :(得分:1)
事件处理程序将在实例化Gserver的线程中运行。异步位是gServer beavering away gettimng它的线程上的数据,当它不是它告诉“你的”线程时。
答案 1 :(得分:0)
没有线程正在运行等待结果。异步Web服务调用完全没有线程。一直到套接字读写操作都是使用异步方法进行的。套接字本身会将请求排队到IO完成端口,这是一个Windows内核原语。
只有在结果可用时,才会在某个随机线程上调用回调。但是这个线程不需要一直在那里。它来自线程池。