Вменяемый номер темы BackgroundWorker? - PullRequest
1 голос
/ 27 апреля 2011

Я пишу «Консоль администратора», которая обращается к hMailServer через предоставленный COM-интерфейс.Я использую Visual Basic 2010 Express.В одной процедуре он сканирует все учетные записи.Поскольку это длительная процедура, я помещаю ее в набор потоков BackgroundWorker.

Первый результат: максимум 19 одновременных потоков с общим временем 36 секунд.

Затем я переписал отнимающее много временисегмент кода инициализации потока, и ему удалось сократить время, необходимое приблизительно до 14 секунд ... но теперь число потоков достигло 330 потоков!

Будет ли это огромное количество потоков вредным?Например, вызывая исключения из нехватки памяти & c.

1 Ответ

1 голос
/ 27 апреля 2011

Я ни в коем случае не эксперт по vb, но почему бы не ограничить число этих фоновых потоков кратным числу ядер, доступных на вашей машине? Огромное количество потоков, скорее всего, вызовет проблемы с нехваткой памяти или голодание потоков.

...