Ich habe ein Textfeld, das Eingabe akzeptiert und Async-Anfrage an den Server sendet.Async-Antwort für zwei verschiedene Anrufe mit TPL
Zuerst habe ich 'a' eingegeben und async Anfrage mit 'a' gesendet. Dann tippte ich sofort 'b' und schickte eine Anfrage mit 'ab'.
Die Antwort für 'ab' wird schneller zurückgegeben als die Antwort für 'a'. So landete ich für immer Antwort auf ‚a‘, obwohl Textbox hat den Wert ‚ab‘
Ich habe versucht, mit, aber es zeigt letzte Antwort (die ‚a‘)
Task.Run(() => {
// send request
}).ContinueWith((t) => {
// get response
});
Ich bin etwas newbiew . Kann mir jemand helfen, mit einem solchen Szenario umzugehen?
Danke für die Antwort. Eine Klarstellung, wenn es drei Anfragen für 'a', 'ab', 'abc' gibt und meine letzte Antwort für 'abc' ist - die Verwendung der Löschung löst die Ausnahme zweimal aus (für vorheriges 'a' und 'ab'), richtig ? –
@YeasinAbedinSiam, das hängt davon ab, wie schnell der Benutzer tippt. Wenn sie wirklich schnell tippen, werden 'a' und 'ab' Operationen abgebrochen, ja. Je langsamer sie tippen, desto mehr Operationen laufen bis zum Ende und gelangen schließlich zum "Prozess/Anzeige-Antwort" -Teil - ohne Ausnahmen. –