我想取消正在运行的任务(当用户按下退出键时)。当我点击“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