Kann mir jemand ein einfaches Beispiel für die asynchrone Seitenverarbeitung in ASP.NET Webforms 2.0 geben (ich verwende VS 2010, also sind neue Syntax wie Lambdas in Ordnung)?
Ich habe einige lange laufende Anfragen, dass ich keine IIS-Threads binden möchte.
Der Einfachheit halber möchte ich sagen, dass mein aktueller Code wie folgt aussieht:
%Vor%Wie kann ich diesen Code so ändern, dass er asynchron ist? Nehmen wir an, dass ich in der aspx-Seite bereits async="true" gesetzt habe.
BEARBEITEN
Ich denke, ich habe herausgefunden, wie ich bekommen kann, wonach ich suche. Ich habe den Beispielcode in eine Antwort hier . Zögern Sie nicht, auf mögliche Fehler oder Änderungen hinzuweisen.
Ich habe einige Leute im ASP.NET-Team gefragt. Hier ist ihre Antwort per E-Mail an mich und jetzt an Sie.
All dieser Code endet damit, einen neuen Thread zu erstellen und den Delegataufruf für diesen Thread auszuführen. Jetzt laufen also zwei Threads: der Anfrage-Thread und der neue Thread. Daher hat dieses Beispiel tatsächlich eine schlechtere Leistung, als der ursprüngliche synchrone Code gehabt hätte.
Siehe Ссылка für ein Beispiel zum Schreiben und Verwenden von asynchronen Methoden in ASP.NET.
Ich denke, ich habe entdeckt, wie ich das machen kann, was ich erreichen wollte ... obwohl es vielleicht nicht der beste Weg ist, fühlen Sie sich frei, hineinzuschlafen.
Zum Zeitpunkt des Schreibens gab es nur eine Antwort in diesem Thread, von Aristos . Während er ein Beispiel für die Ausführung einer asynchronen Anfrage gab, wollte ich ASP.NET eine lang andauernde Methode ausführen lassen, den IIS-Thread freigeben, damit er für andere Anforderungen verfügbar ist, und dann bei der Methode zurückkommen fertig.
Hier ist, was ich mit dem gleichen (oder ähnlichen) Beispiel in der Frage herausgefunden habe:
%Vor%Tags und Links asp.net asynchronous webforms