gpt4 book ai didi

c# - 在不同线程中处理列表项

转载 作者:太空宇宙 更新时间:2023-11-03 18:00:14 24 4
gpt4 key购买 nike

目前,我在下面的代码中显示了排队等待顺序处理的作业对象列表。

   List<Job> jobList = jobQueue.GetJobsWithStatus(Status.New);
foreach (Job job in jobList)
{
job.Process();
}

我有兴趣在有限数量的线程(比如 5 个线程)中同时运行多个作业。

在 C# 中执行此操作的最佳方法是什么?

附加说明:

  • Job 对象不共享资源与其他工作。
  • 每个作业大约需要 10 秒过程。
  • 每个作业都可以连接到不同的资源。

更新:我使用了信号量,因为我无法使用线程池限制事件线程的数量。

最佳答案

如果您喜欢冒险,可以使用 C# 4.0 和任务并行库:

Parallel.ForEach(jobList, curJob => {
curJob.Process()
});

关于c# - 在不同线程中处理列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2364033/

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