gpt4 book ai didi

c# - 如何限制c#中的最大并行任务数

转载 作者:IT王子 更新时间:2023-10-29 04:17:43 26 4
gpt4 key购买 nike

我要处理 1000 条输入消息。我正在循环输入集合并为要处理的每条消息启动新任务。

//Assume this messages collection contains 1000 items
var messages = new List<string>();

foreach (var msg in messages)
{
Task.Factory.StartNew(() =>
{
Process(msg);
});
}

我们可以猜测当时最多同时处理多少条消息(假设是普通的四核处理器),或者我们可以限制当时要处理的最大消息数吗?

如何确保此消息以与集合相同的顺序/顺序得到处理?

最佳答案

你可以使用 Parallel.Foreach并依靠MaxDegreeOfParallelism相反。

Parallel.ForEach(messages, new ParallelOptions {MaxDegreeOfParallelism = 10},
msg =>
{
// logic
Process(msg);
});

关于c# - 如何限制c#中的最大并行任务数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36564596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com