Я просмотрел ThreadPool, но
ThreadPool.SetMaxThreads(5, 0);
List<task> tasks = GetTasks();
int toProcess = tasks.Count;
ManualResetEvent resetEvent = new ManualResetEvent(false);
for (int i = 0; i < tasks.Count; i++)
{
ReportGenerator worker = new ReportGenerator(tasks[i].Code, id);
ThreadPool.QueueUserWorkItem(x =>
{
worker.Go();
if (Interlocked.Decrement(ref toProcess) == 0)
resetEvent.Set();
});
}
resetEvent.WaitOne();
Я не могу понять, почему... мой код выполняет более 5 потоков одновременно. Я пытался установить maxthreads, setminthreads, но он продолжает выполнять более 5 потоков.
Что происходит? Что мне не хватает? Должен ли я делать это по-другому?
Спасибо