gpt4 book ai didi

c# - 长时间停顿的并行任务

转载 作者:行者123 更新时间:2023-11-30 20:04:22 25 4
gpt4 key购买 nike

我有一个函数是

   private void DoSomethingToFeed(IFeed feed)
{
feed.SendData(); // Send data to remote server
Thread.Sleep(1000 * 60 * 5); // Sleep 5 minutes
feed.GetResults(); // Get data from remote server after it's processed it
}

我想将其并行化,因为我有很多彼此独立的提要。基于this answer , 将 Thread.Sleep() 留在那里不是一个好主意。我还想等所有线程启动后,直到它们都有机会获得结果。

处理这种情况的最佳方法是什么?

编辑,因为我不小心遗漏了它:我最初考虑将此函数称为 Parallel.ForEach(feeds, DoSomethingToFeed),但我想知道是否有当我找到链接到的答案时,这是一种更好的处理 sleep 的方法。

最佳答案

除非您有大量线程,否则您可以保持简单。创建所有线程。您将获得一些线程创建开销,但由于线程基本上一直处于休眠状态,因此您不会进行太多的上下文切换。

它比任何其他解决方案都更容易编码(除非您使用的是 C# 5)。因此,从这个开始,只有当您确实发现性能问题时才改进它。

关于c# - 长时间停顿的并行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13058486/

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