Могу ли я использовать слишком много фоновых рабочих потоков? - PullRequest
3 голосов
/ 04 февраля 2010

Каждый раз, когда мой код должен общаться с сетью или базой данных, я использую фоновый работник, могу ли я использовать слишком много, как правильно выполнять эти задачи?

Если я не использую фонового работника, графический интерфейс блокируется, если удаленный хост не работает и т. Д., Поэтому использование фонового работника - единственный способ, который я знаю, чтобы это исправить.

Я самоучка, поэтому я учусь по ходу дела, спасибо всем, кто ответит.

1 Ответ

1 голос
/ 04 февраля 2010

Да, вы можете использовать слишком много.BackgroundWorker использует потоки из пула потоков, поэтому, если вы запустите слишком много (одновременно), вы исчерпаете пул потоков.

Фоновый работник предназначен для длительных операций, а не коротких операций, которые могут иногда блокироваться.Вместо этого используйте неблокирующий ввод / вывод:

...