Hi,
ich rufe eine Webseite auf einem schnellen lokalen Server ab. Bei Fehlern dauert die Rückmeldung aber ewig.
Bisher habe ich das mit einem Timeout von 800ms gut im Griff, aber die Anwendung "hängt" natürlich trotzdem kurz.
Daher will ich das auf Async/Await umstellen, dann wird aber der Timeout nicht mehr berücksichtigt und bei Fehlern kommt die Rückmeldung wieder nach Ewigkeiten.
Ohne Async klappt das prima:
Ändere ich die Zeile Nr. 4 (Dim response As Net.WebResponse = wr.GetResponse) auf
muss ich viele lange Sekunden auf die Fehlermeldung warten.
Was mache ich falsch? Oder gibt es Alternativen?
Bye,
Dilbert
ich rufe eine Webseite auf einem schnellen lokalen Server ab. Bei Fehlern dauert die Rückmeldung aber ewig.
Bisher habe ich das mit einem Timeout von 800ms gut im Griff, aber die Anwendung "hängt" natürlich trotzdem kurz.
Daher will ich das auf Async/Await umstellen, dann wird aber der Timeout nicht mehr berücksichtigt und bei Fehlern kommt die Rückmeldung wieder nach Ewigkeiten.
Ohne Async klappt das prima:
VB.NET-Quellcode
- Dim qt As String = ""
- Dim wr As Net.WebRequest = Net.WebRequest.Create("http://1.3.3.3") 'Gibt es nicht, soll ja einen Fehler produzieren...
- wr.Timeout = 800
- Dim response As Net.WebResponse = wr.GetResponse
- Using reader = New IO.StreamReader(DirectCast(response, Net.HttpWebResponse).GetResponseStream, System.Text.Encoding.UTF8)
- qt = reader.ReadToEnd()
- End Using
- Console.WriteLine(qt)
Ändere ich die Zeile Nr. 4 (Dim response As Net.WebResponse = wr.GetResponse) auf
muss ich viele lange Sekunden auf die Fehlermeldung warten.
Was mache ich falsch? Oder gibt es Alternativen?
Bye,
Dilbert