本方法是结束之前的线程,如果多次启动同一个线程则可以终止以前的线程,只执行最后一个
using System.Threading; #region 终止线程 Thread weight = new Thread(() => { }); // 初始化一个空的线程对象 private CancellationTokenSource cancellationTokenSource; // 创建一个取消令牌源对象 public void StopThread () { try { if (weight != null && weight.IsAlive) { cancellationTokenSource.Cancel(); // 取消之前的线程任务 if (!weight.Join(TimeSpan.FromSeconds(5))) { weight.Abort(); // 如果线程没有在规定时间内结束,强制终止线程 } } } catch (Exception) { // 异常处理代码 } cancellationTokenSource = new CancellationTokenSource(); // 创建一个新的取消令牌源对象 weight = new Thread((token) => { // 线程内的方法 }); weight.Start(cancellationTokenSource.Token); // 启动新线程,并传递取消令牌 } #endregion
本文介绍了如何在C#中使用`CancellationTokenSource`来管理和终止线程,包括创建、取消旧线程任务,以及在必要时强制终止线程的过程。

被折叠的 条评论
为什么被折叠?



