Фоновый работник - PullRequest
       1

Фоновый работник

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

Если у меня есть набор действий, которые я хочу выполнить в фоновом режиме на основе определенного условия, и у меня есть 10 условий, например

if(a)
    BackgroundWorker doA = new backgroundworker()
if(b) 
    BackgroundWorker doB = new backgroundworker()
if(c) 
    BackgroundWorker doC = new backgroundworker()
if(d) 
    BackgroundWorker doD = new backgroundworker()
...
...

каждому из этих фоновых рабочих потребуется dowork, runworkercompleted и т.д.

спасибо

Ответы [ 3 ]

3 голосов
/ 04 апреля 2011

Вместо этого вы должны использовать Task из пространства имен System.Threading.Tasks, это очень просто и удобно.

Чтобы запустить задачу, вы можете просто использовать: Task.Factory.StartNew()передача метода или лямбда-выражения в качестве параметра.вы получаете Task объект, который можете использовать для продолжения, получения результата и т. д.

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

Можно рассмотреть возможность использования одного фонового работника и передачи ему аргумента. Используя этот аргумент в методе DoWork, вы можете определить, какой блок кода будет работать. Проверьте этот поток

Отправка аргументов в фоновый режимработник

0 голосов
/ 04 апреля 2011

Почему бы вам не передать объект, который нуждается в оценке, в BackgroundWorker, и BackgroundWorker может использовать его, чтобы определить, что делать?

...