Re: Пул потоков. Помогите плз
От: Svjat Украина  
Дата: 06.08.07 07:21
Оценка: 1 (1) +1
Здравствуйте, 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>Заранее спасибо за любой ответ!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.