Domanda

Ho una situazione in cui voglio permettere all'utente di digitare in un WPF TextBox, su ogni sequenza di tasti che io chiamo OnPropertyChanged e spingere la mia fonte di legame (usando SourceUpdatedTrigger = PropertyChanged) Voglio che ci sia un breve ritardo prima di tentare di elaborare i dati (ad esempio ... 1 secondo) Pensate a questo come un sistema di controllo ortografico in cui si attende che l'utente di battitura fermata prima dicendo loro che non possono incantesimo.

Il mio problema è il seguente:

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

funziona bene fino a quando effettivamente annulla, ma poi la fonte di token cancellazione è permanantly nella "cancellazione richiesto" stato, e devo reinstanciate CTS ... questo sembra ... fondamentalmente sbagliato ... C'è una migliore modo per "resettare" il CTS, ma ancora di avvisare i token esistenti che dovrebbero annullare?

È stato utile?

Soluzione

No, un CancellationTokenSource può essere cancellato solo una volta -. Come dici, è necessario crearne uno nuovo dopo la cancellazione di esso, per ulteriori attività

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top