foreach (var action in actions)
{
Task.Factory.StartNew(action);
}
但是,如果我需要限制同时运行的操作数量怎么办?我该怎么做?
答案 0 :(得分:1)
我非常喜欢微软的解决方案http://msdn.microsoft.com/en-us/library/ee789351.aspx。
一次仅允许一个线程的示例用法:
LimitedConcurrencyLevelTaskScheduler lcts = new LimitedConcurrencyLevelTaskScheduler(1);
TaskFactory factory = new TaskFactory(lcts);
factory.StartNew(()=>
{
//work as usual
});
考虑在您的操作中使用BlockingCollection和GetConsumingEnumerable()来实现非常干净的实现http://msdn.microsoft.com/en-us/library/dd287186.aspx