Здравствуйте, eccentric, Вы писали:
E>Всем доброго дня!
E>Проблема: Активно используется очередь пула потоков. Когда прога запускается, то потоки создаются очень медленно (смотрю количество потоков для процесса в диспетчере задач). Я понимаю почему это происходит (чтобы создать очередной рабочий поток, нужно процессорное время основному потоку, а с ростом рабочих потоков, время ему выделяется все реже и реже).
не так, есть искуственное ограничение — новые потоки в пуле создаются
не чаще чем раз в 500 мс.
можно попробовать сразу установить минимальное количество потоков.
например,
ThreadPool.SetMinThreads( 10, 2 );
E>Может у кого есть идеи, как этого избежать?
E>Вся работа происходит примерно следующим образом:
E>E>int count = 1000;
E>for (int i = 0; i < count; i++)
E> ThreadPool.QueueUserWorkItem(SomeMethod);
E>WaiterForThreadsComplete(); //просто ждем, када потоки завершат работу
E>
E>Заранее спасибо за любой ответ!