为了账号安全,请及时绑定邮箱和手机立即绑定

停止上一个任务并运行新任务 wpf

停止上一个任务并运行新任务 wpf

C#
守候你守候我 2022-08-20 16:24:33
我希望如果用户更改了列表框项,并且上一个任务尚未完成,则该任务停止并启动新任务。我该怎么做?我使用了此代码,但无法正常工作。CancellationTokenSource source = new CancellationTokenSource();CancellationToken token;private void Listbox_SelectionChanged(object sender, SelectionChangedEventArgs e){    if (task != null && (task.IsCompleted == false || task.Status == TaskStatus.Running))    {        if (source != null)            source.Cancel();    }    task = LoadArts();}private async Task LoadArts(){    token = source.Token;    await Task.Run(() =>    {    }    , token);}
查看完整描述

1 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

  1. 您应该将 传递给在任务中运行的代码,并时不时地从中调用令牌上的 ThrowIfCancellationRequest 方法。CancellationToken

  2. 应将取消令牌传递给委托后的方法。由于取消是通过抛出 an 或 a 来完成的,任务的状态会因为其中抛出异常而出错。传递令牌时,任务会将其与取消例外中的令牌进行比较,如果它们匹配,则任务将被取消,而不是出错。Task.RunOperationCanceledExceptionTaskCanceledException


查看完整回答
反对 回复 2022-08-20
  • 1 回答
  • 0 关注
  • 84 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号