相关疑难解决方法(0)

C#中的例外有多贵?

C#中的例外有多贵?只要堆叠不深,它们似乎并不是非常昂贵; 但我读过相互矛盾的报道.

有没有被反驳的确定性报告?

c# exception

70
推荐指数
5
解决办法
3万
查看次数

在键盘事件中使用CancellationToken调用Task.Delay时的TaskCanceledException

我试图延迟在WinRT中从键盘事件调用的方法(在示例中为SubmitQuery())的处理,直到一段时间内没有其他事件(在这种情况下为500毫秒).

我只想在我认为用户输入完成后运行SubmitQuery().

使用下面的代码,当Task.Delay(500,cancellationToken.Token)时,我不断收到System.Threading.Tasks.TaskCanceledException; 叫做.我在这做错了什么?

CancellationTokenSource cancellationToken = new CancellationTokenSource();

private async void SearchBox_QueryChanged(SearchBox sender, SearchBoxQueryChangedEventArgs args)
{

        cancellationToken.Cancel();
        cancellationToken = new CancellationTokenSource();

    await Task.Delay(500, cancellationToken.Token);

    if (!cancellationToken.IsCancellationRequested)
    {
        await ViewModel.SubmitQuery();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asynchronous cancellationtokensource windows-runtime cancellation-token

16
推荐指数
4
解决办法
8084
查看次数