我目前使用下面的代码来创建一个Web请求:如何在VB.NET中调用异步Web请求?
Dim myRequest As WebRequest = WebRequest.Create("http://foo.com/bar")
Dim myResponse As WebResponse = myRequest.GetResponse()
的问题是,这种“锁定”了程序,直到请求完成(如果请求永远不会完成程序将被挂起)。你如何改变这样的事情来异步执行,以便在Web请求完成时完成其他任务?
我目前使用下面的代码来创建一个Web请求:如何在VB.NET中调用异步Web请求?
Dim myRequest As WebRequest = WebRequest.Create("http://foo.com/bar")
Dim myResponse As WebResponse = myRequest.GetResponse()
的问题是,这种“锁定”了程序,直到请求完成(如果请求永远不会完成程序将被挂起)。你如何改变这样的事情来异步执行,以便在Web请求完成时完成其他任务?
您将使用BeginGetResponse添加一个AsyncCallback,它基本上指向代码中的其他一些方法,这些方法将在WebRequest返回时调用。有一个很好的sample here。
myRequest.BeginGetResponse()
您还需要调用EndGetReponse()当请求完成(通过WaitHandle中,回调或轮询确定)。