* Примечание: Перефразируя мой вопрос, основываясь на комментариях пользователя.
Нужна помощь в том, как использовать поток .Net Backgroundworker для следующих целей, чтобы повысить отзывчивость и производительность пользовательского интерфейса в моем приложении .Net winforms.Когда пользователь нажимает кнопку «Рассчитать» в форме пользовательского интерфейса, я делаю это:
1.Получить список категорий C из базы данных [обычно это около 10]
2.Для каждогокатегория C, выполните следующие действия:
a.Звоните в стороннюю библиотеку, выполните некоторую обработку и рассчитайте цену категории.
b.Получите список продуктов [Обычно это около 800].
c. Для каждого продукта рассчитайте его цену, используя цену из категории, указанной выше.
d. Обновите эту цену каждого продукта в базе данных, используя сохраненный процесс.
3. Обновите ход выполнения [или сообщите любое сообщение об ошибке] в форму в пользовательском интерфейсе.
К вашему сведению, я хочу использовать Backgroundworker для шагов #c и #d выше.
Я пытался использовать Backgroundworker в своем методе. Я помещал вызовы InitializeBackgroundworker () и RunWorkerAsync () в самый внешний цикл [т.е.шаг 2]. Но похоже, что Backgroundworker вызывается только для первой категории. Чего мне здесь не хватает?
Итак, мой вопрос: где мне сделать вызов InitializeBackgroundworker () и RunWorkerAsync ()?И как мне сделать так, чтобы эти 2 метода вызывались для каждой категории?
Спасибо за чтение.