如何在VB.NET中调用异步Web请求?

时间:2020-03-06 14:40:26  来源:igfitidea点击:

我目前正在使用以下代码创建网络请求:

Dim myRequest As WebRequest = WebRequest.Create("http://foo.com/bar")
Dim myResponse As WebResponse = myRequest.GetResponse()

问题在于,这将"锁定"程序直到请求完成(如果请求从未完成,则程序将挂起)。我们如何更改此类内容以异步执行,以便在Web请求完成时可以完成其他任务?

解决方案

myRequest.BeginGetResponse()

请求完成时(通过WaitHandle,回调或者轮询确定),我们还需要调用EndGetReponse()。

我们将使用BeginGetResponse添加AsyncCallback,它基本上指向代码中的其他方法,该方法将在WebRequest返回时被调用。这里有一个很好的例子。

http://www.sitepoint.com/forums/showpost.php?p=3753215