Frage

Ich habe eine Situation, wo ich will, damit ein Benutzer in eine WPF-TextBox, auf jedem Tastendruck eingeben nenne ich OnPropertyChanged und Push-to-meine Bindungsquelle (mit SourceUpdatedTrigger = Property) ich es möge eine kurze Verzögerung sein, bevor verarbeitet die Daten (zB ... 1 Sekunde) Betrachten sie dies wie eine Rechtschreibprüfung System, in dem es für den Benutzer zu stoppen Eingabe wartet, bevor er sie zu sagen, sie können nicht buchstabieren.

Mein Problem ist:

 await TaskEx.Delay(1000, cts.Token);
 await TaskEx.RunEx(PollAsync, cts.Token);

funktioniert gut, bis Sie tatsächlich kündigen, aber dann die Abbruch-Token Quelle permanantly in der „Abbruch angefordert“ Zustand, und ich habe die CTS reinstanciate ... das scheint ... grundlegend falsch ... Gibt es eine bessere Weg zum „Reset“ der CTS, aber immer noch mitteilen bestehende Token, dass sie abbrechen sollte?

War es hilfreich?

Lösung

Nein, kann ein CancellationTokenSource nur einmal abgebrochen werden. - wie Sie sagen, Sie brauchen, um einen neuen zu erstellen, nachdem Sie es gelöscht haben, für weitere Aufgaben

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top