小编PEY*_*MAN的帖子

如何取消正在运行的任务?

我想取消正在运行的任务(当用户按下退出键时)。当我点击“escape”键 Form_KeyDown 运行但不取消任务时!

CancellationTokenSource tokenSource = new CancellationTokenSource();
CancellationToken token=new CancellationToken();

private async void Search_Button_ClickAsync(object sender, EventArgs e)
{
  token = tokenSource.Token;
  await (Task.Factory.StartNew(() =>
           {
             //...my program
           },
           token));

private void Form_KeyDown(object sender, KeyEventArgs e)
{
  if (e.KeyCode == Keys.Escape)
  {
    tokenSource.Cancel();
  }
}
Run Code Online (Sandbox Code Playgroud)

c# task cancellation cancellationtokensource cancellation-token

2
推荐指数
1
解决办法
8119
查看次数