异步方法是在单独的线程中运行的吗?

时间:2012-02-27 10:18:33

标签: c# asynchronous

我的silverlight应用程序异步调用webservice方法,如下所示:

 gServer = new ServiceReference1.Service1SoapClient();

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

Retrieve_Data_List_Completed方法是否在另一个线程中运行?

2 个答案:

答案 0 :(得分:1)

事件处理程序将在实例化Gserver的线程中运行。异步位是gServer beavering away gettimng它的线程上的数据,当它不是它告诉“你的”线程时。

答案 1 :(得分:0)

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

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