c#Task.关闭线程
时间: 2023-10-23 16:11:43 浏览: 105
C#停止线程的方法
5星 · 资源好评率100%
在 C# 中,我们可以使用 CancellationTokenSource 取消任务并关闭线程。以下是一个示例代码:
```csharp
using System;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static CancellationTokenSource cts = new CancellationTokenSource();
static void Main(string[] args)
{
Task task = Task.Factory.StartNew(() =>
{
while (!cts.Token.IsCancellationRequested)
{
Console.WriteLine("Working...");
Thread.Sleep(1000);
}
}, cts.Token);
Console.WriteLine("Press any key to cancel the task and close the thread");
Console.ReadKey();
cts.Cancel();
task.Wait();
}
}
```
在这个示例中,我们创建了一个 Task 并在其中执行一个无限循环。在这个循环中,我们检查 CancellationTokenSource 是否已请求取消,如果没有,则继续工作。我们还将 CancellationTokenSource.Token 传递给 Task,以便 Task 可以检查是否请求了取消。
我们使用 Console.ReadKey() 等待用户按下任意键,然后我们调用 CancellationTokenSource.Cancel() 方法以请求取消任务并关闭线程。最后,我们使用 Task.Wait() 等待任务完成。
阅读全文