我有一个功能是
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
}
我想将此并行化,因为我有很多相互独立的提要。基于这个答案,把它留Thread.Sleep()
在里面并不是一个好主意。我还想在所有线程都启动后等待,直到它们都有机会获得结果。
处理这种情况的最佳方法是什么?
编辑,因为我不小心遗漏了它:我最初考虑将此函数称为Parallel.ForEach(feeds, DoSomethingToFeed)
,但是当我找到链接到的答案时,我想知道是否有更好的方法来处理睡眠。