2012-02-27 59 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內核原語。

只有當結果可用時,您的回調纔會在某個隨機線程上被調用。但是這個線程並不需要一直存在。它來自線程池。

相關問題