2009-06-29 14 views
-1

Ich habe eine Web-Anfrage, die in einigen Fällen 30-90 Sekunden dauern kann (die meiste Zeit in 2-3 abgeschlossen). Derzeit sieht die Software so aus, als ob sie hängen geblieben ist, wenn die Anfrage so lange dauert.Handhabung lange laufenden Webrequest

Ich dachte, dass ich Hintergrundarbeiter verwenden könnte, um die Webanforderung in einem separaten Thread zu verarbeiten. Die Software muss jedoch auf die Anforderung warten, bevor sie fortfährt. Ich weiß, wie man den Hintergrundarbeiter einrichtet. Worüber ich mich nicht sicher bin, ist, wie man mit der Bearbeitung der Anfrage umgehen muss.

Muss ich einen Timer erstellen, um nach den Ergebnissen zu suchen, bis die Anfrage abläuft oder verarbeitet wird?

Antwort

0

Ich würde keinen Timer verwenden. Wenn die Webanforderung im Arbeitsthread abgeschlossen wird, verwenden Sie stattdessen einen Aufruf der Invoke-Methode für ein Steuerelement in der Benutzeroberfläche, um die Benutzeroberfläche mit dem Ergebnis zu aktualisieren (oder eine Art Benachrichtigung zu senden).