在前面的文章中,我们介绍了多线程的含义以及.NET平台中的多线程简单应用。详见:
但Thread不是万能的。尤其在.NET6.0以及更高的版本中,Thread,Abort()方法被禁用,要中止线程,必须采用别的方法。本人目前的替代方案是CancellationToken方法。
直接看例子
public partial class Form1 : Form
{
CancellationToken tokenTimer;
CancellationTokenSource tsTimer;
private void UpdateTimer(){
{
//运行
}
private async Task RunAsync(CancellationToken CT)
{
if (ct.IsCancellationRequested) return;
await Task.Run(() => UpdateTImer(ct), ct);
}
private void TaskStart()
tsTimer = new CancellationTokenSource();
tokenTimer = tsTimer.Token;
//线程开始
taskTimer = RunAsyncTimer(tokenTimer);
}
private void TaskEnd()
{
//线程终止
tsTimer.Cancel();
}
}