一般情况下 ,如果我们的task主体是一个while循环,我们不想让此循环一直执行下去,可以通过给与while赋予条件来达成!
CancellationTokenSource tokenSource = new CancellationTokenSource();
Task task = Task.Run(() =>
{
while (!tokenSource.IsCancellationRequested)
{
Thread.Sleep(1000);
}
}, tokenSource.Token); // 模拟一个耗时操作
Console.WriteLine("任务开始执行");
if (task.Wait(3000)) // 等待任务完成,并设置超时时间为3秒
{
Console.WriteLine("任务执行完毕");
}
else
{
tokenSource.Cancel();
Console.WriteLine("任务超时");
}
Console.ReadKey();