ConcurrentStack<int> stack = new ConcurrentStack<int>();
//并行计算
Parallel.For(0, 100, new ParallelOptions()
{
//最多同时并行的线程池中线程的数量为7
//MaxDegreeOfParallelism = 7
MaxDegreeOfParallelism = Environment.ProcessorCount - 1,
CancellationToken = new CancellationToken()
}, (item, loop) =>
{
if (item == 10)
{
//这个不仅中断了item这个task,还会中断其他所有的task
loop.Stop();
return;
}
stack.Push(item);
});
Console.WriteLine(string.Join(",", stack));