下面的代碼只是檢查圖像的URL,如果它是有效的。當我運行它如下,它檢查並立即返回異步等待永不結束,但立即同步運行
Function testUrl(ByVal myImage As String) As Boolean
myHttpClient.BaseAddress = New Uri(imageUrl)
myHttpResponse = myHttpClient.GetAsync(myImage).result
success= myHttpResponse.IsSuccessStatusCode
End Function
但是當我運行異步await,我不知道會發生什麼。因爲我在等待行上設置我的斷點並按f10,所以我沒有取得進展,我不確定是否因爲異步,它運行,但是如果我的斷點位於成功= myhttpresponse.issucessstatuscode,我不會在下一行看到任何中斷線。
Url是一個有效的url,第一個代碼立即返回true。我可以向任何人建議發生了什麼?
Async Function testUrl_async(ByVal myImage As String) As Task(Of Boolean)
myHttpClient.BaseAddress = New Uri(imageUrl)
myHttpResponse = Await myHttpClient.GetAsync(myImage)
success= myHttpResponse.IsSuccessStatusCode
End Function
編輯: 當我甚至嘗試下面的代碼,它沒有做任何事情。但是,如果沒有異步等待作品
Async Function testUrl_async() As Task(Of Boolean)
myHttpClient.BaseAddress = New Uri("http://www.logoeps.net/")
myImage = "wp-content/uploads/2013/06/stackoverflow_logo.jpg"
Try
myHttpResponse = Await myHttpClient.GetAsync(myImage)
Catch ex As Exception
End Function
End Try
可能會有一些例外?添加try/catch來查看是否有異常發生,或者使用Visual Studio的「拋出異常時中斷」功能。你怎麼稱呼這個方法? –
在調用testUrl_async()之後,應用程序的其餘部分是什麼樣的?您是否在異步調用有機會運行之前退出? – GazTheDestroyer
@SriramSakthivel嘗試趕上沒有任何東西。顯然沒有例外 – batmaci