1

我有一种情况,我想允许用户在每次击键时输入 WPF 文本框,我调用 OnPropertyChanged 并推送到我的绑定源(使用 SourceUpdatedTrigger=PropertyChanged)我希望在尝试处理数据之前有一个短暂的延迟(比如说... 1 秒)可以把它想象成一个拼写检查系统,它在告诉用户他们不能拼写之前等待用户停止输入。

我的问题是:

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

在您实际取消之前工作正常,但是取消令牌源永久处于“已请求取消”状态,我必须重新实例化 CTS ......这似乎......从根本上是错误的......有没有更好的方法来“重置” CTS,但仍通知现有令牌他们应该取消?

4

1 回答 1

2

不,CancellationTokenSource只能取消一次 - 正如您所说,您需要在取消后创建一个新的,以完成更多任务。

于 2010-12-01T22:07:56.363 回答