質問

ユーザーがWPFテキストボックスに入力できるようにしたい状況があります。各キーストロークで、onpropertychangedを呼び出してバインディングソースにプッシュします(SourceUpdatedTrigger = PropertyChangedを使用)データを処理する前に短い遅延が必要です。 (たとえば... 1秒)これは、ユーザーがスペルができないと言う前に、ユーザーがタイピングを停止するのを待つスペルチェックシステムのように考えてください。

私の問題は次のとおりです。

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

実際にキャンセルするまで正常に動作しますが、キャンセルトークンソースは「キャンセル要求された」状態に永続的にあり、CTSを再度回復しなければなりません...これは根本的に間違っているようです...より良い方法はありますか?」 CTSをリセットしますが、それでもキャンセルする必要があることを既存のトークンに通知しますか?

役に立ちましたか?

解決

いや CancellationTokenSource キャンセルすることは一度しかありません - あなたが言うように、あなたはそれをキャンセルした後、さらなるタスクのために新しいものを作成する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top