private CancellationTokenSource m_CancellationTokenSource = new CancellationTokenSource();
子线程开启:
private void printStart_Click(object sender, EventArgs e)
{
ExHelper.TryExec(() =>
{
Thread m_printCode = new Thread(printCode);
m_printCode.Start();
});
}
子线程停止:
private void printStop_Click(object sender, EventArgs e)
{
//发送线程取消信号
m_CancellationTokenSource.Cancel();
}
子线程内检测取消信号:检测到取消信号后停止线程并重新实例化信号,调用子线程开启可再次开启子线程
if (m_CancellationTokenSource.Token.IsCancellationRequested)
{
m_CancellationTokenSource = new CancellationTokenSource();
Console.WriteLine("线程被终止");
break;
}