0
foreach (var action in actions)
{
Task.Factory.StartNew(action);
}
但是,如果我需要限制在同一時間運行的動作數量呢?我怎麼做?如何限制某個特定代碼區域的線程數量?
foreach (var action in actions)
{
Task.Factory.StartNew(action);
}
但是,如果我需要限制在同一時間運行的動作數量呢?我怎麼做?如何限制某個特定代碼區域的線程數量?
我真的很喜歡微軟的解決方案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
嘗試使用HTTP裏面:// MSDN .microsoft.com/ru-ru/library/dd321473.aspx – Frank59 2013-04-30 05:28:03
MaxDegreeOfParallelism - 檢查這裏http://stackoverflow.com/questions/2898609/system-threading-tasks-limit-the-number-of-concurrent-tasks – 2013-04-30 05:35:17