在C#中运行可变数量的并发参数化无限循环类型的线程,可以通过多种方式实现,以下是一个基本的示例,使用Task
和CancellationToken
来管理并发线程。
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
// 创建一个CancellationTokenSource,用于取消任务
CancellationTokenSource cts = new CancellationTokenSource();
// 模拟一些参数
List<int> parameters = new List<int> { 1, 2, 3, 4, 5 };
// 启动并发任务
Parallel.ForEach(parameters, new ParallelOptions { CancellationToken = cts.Token }, param =>
{
Task.Run(() => InfiniteLoop(param, cts.Token), cts.Token);
});
// 模拟运行一段时间后取消任务
Thread.Sleep(5000);
cts.Cancel();
Console.WriteLine("Main thread exiting.");
}
static void InfiniteLoop(int param, CancellationToken token)
{
while (!token.IsCancellationRequested)
{
Console.WriteLine($"Thread {param} is running.");
Thread.Sleep(1000);
}
Console.WriteLine($"Thread {param} is cancelled.");
}
}
CancellationToken
以确定是否需要退出循环。CancellationToken
。通过这种方式,你可以有效地管理并发线程,并在需要时取消它们。
领取专属 10元无门槛券
手把手带您无忧上云