Следует ли мне использовать для этого BackgroundWorker или Threads ?

Все, я успешно использовал классы Thread и BackgroundWorker , чтобы облегчить плавный интерфейс для несколько небольших приложений.Недавно мне поручили преобразовать огромный кусок кода из последовательного в многопоточный, и у меня есть несколько вопросов из-за некоторых комментариев, которые я видел на этом самом сайте. Код, который мне нужно преобразовать, выполняет различное количество (обычно большое количество) вызовов SQL Server, и эти SQL-запросы иногда могут выполняться в течение 30 минут или около того. Таким образом, требуется многопоточность.

Я уже установил тестовую программу с использованием BackgroundWorker , и они работают нормально. Однако некоторые говорят, что из-за того, что BackgroundWorker использует пул потоков, их не следует использовать для длительных задач. Я нигде этого не читал (например, Joesph Albahari C # 4.0 In a Nutshell ), и это противоречит MSDN . Должен ли я использовать для этих целей BackgroundWorker или Thread ?

Заранее благодарим.

5
задан Robert Harvey 12 October 2011 в 04:38
поделиться