我有这种情况:
var tasks = new List<ITask> ...
Parallel.ForEach(tasks, currentTask => currentTask.Execute() );
是否有可能指示PLinq在下一个线程产生之前等待500ms?
System.Threading.Thread.Sleep(5000);
您使用Parallel.Foreach完全错误,您应该制作一个特殊的枚举器,其速率限制自己每500毫秒获取一次数据.
由于你没有提供任何细节,我对你的DTO如何运作做了一些假设.
private IEnumerator<SomeResource> GetRateLimitedResource()
{
    SomeResource someResource = null;
    do
    {
        someResource = _remoteProvider.GetData();
        if(someResource != null)
        {
             yield return someResource;
             Thread.Sleep(500);
        }
    } while (someResource != null);
}
这是你的并列应该如何看待
Parallel.ForEach(GetRateLimitedResource(), SomeFunctionToProcessSomeResource);