2012-02-27 65 views
2

我的Silverlight应用程序异步调用webservice的方法如下:异步方法是否在单独的线程中运行?

gServer = new ServiceReference1.Service1SoapClient(); 

gServer.Retrieve_DataSet_ListCompleted += new EventHandler<ServiceReference1.Retrieve_DataSet_ListCompletedEventArgs>(Retrieve_Data_List_Completed); 

是否在不同的线程运行Retrieve_Data_List_Completed方法?

回答

1

事件处理程序将在实例化Gserver的线程中运行。异步位是gServer,可以在线程中获取数据,当它不知道它告诉“你的”线程时。

0

没有线程正在运行等待结果。异步Web服务调用完全是无线的。所有事情都发生在使用异步方法的套接字读写操作上。套接字本身会将请求排队到一个IO完成端口,这是一个Windows内核原语。

只有当结果可用时,您的回调才会在某个随机线程上被调用。但是这个线程并不需要一直存在。它来自线程池。

相关问题