我现在要调用好个WebService。每一个WebService都很耗时。
我想在调用WebService的时候,做其它工作。
这些代码要如何写
对于不懂多线程的初学者来说,BackgroundWorker是一个比较容易使用的组件。
将调用WebService的代码写在Dowork里面,
将完成后想要进行的工作写在Completed里面。
你可以用 BeginXXXX 调用,也可以把 XXXX 调用放置到其它线程中,还可以用 HttpWebRequest.BeginGetResponse,还可以用 Socket.SendAsync,Socket.ReceiveAsync。
那就使用线程吧,你看一下你有几个WebService是比较耗时的,你就将其用线程去调用它,如下代码所示
ServiceReference1.WebServiceSoapClient a = new ConsoleApplication2.ServiceReference1.WebServiceSoapClient();//这个a就是你的WebService对象 Thread t1 = new Thread(new ThreadStart(a.HelloWorld));//HelloWord方法 Thread t2 = new Thread(new ThreadStart(a.Nice));//Nice方法 Thread t3 = new Thread(new ThreadStart(a.See));//See方法 t1.Start(); t2.Start(); t3.Start();
这样一来,就达到了你想要的效果了