несколько фоновый работник vb.net - PullRequest
2 голосов
/ 18 марта 2011

Мне нужно запустить несколько задач в фоновом режиме, используя backgroundwoker

например, dim mybacgroundwokers(10) as backgroundwoker

в процедуре события фонового рабочего, могу ли я сделать что-то подобное, потому что у меня нет идеи

mybackgroundwoker_dowork(,,index)

select case index
case 1
'dowork for backgroundworker1
case 2
'dowork for backgroundworker2
end select

или как мне справиться с несколькими фоновыми работниками

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

спасибо

Ответы [ 2 ]

2 голосов
/ 21 марта 2011

Вам следует использовать несколько фоновых рабочих с подходящим именем, например:

Dim CountSheepBackgroundWorker As BackgroundWorker WithEvents
Dim CountStarsBackgroundWorker As BackgroundWorker WithEvents
Dim StackEggsBackgroundWorker As BackgroundWorker WithEvents

Если вы абсолютно хотите использовать массив, Visual Studio не поможет вам с подсистемами DoWork:

Dim MyBackgroundWorkers(9) As BackgroundWorker
' Add first
MyBackgroundWorkers(0) = new BackgroundWorker
AddHandler MyBackgroundWorkers(0), AddressOf FirstBackgroundWorker_DoWork
MyBackgroundWorkers(0).RunWorkerAsync()
' Add second etc
2 голосов
/ 19 марта 2011

Возможно, вы захотите взглянуть на этот поток

Триггерное событие Backgroundworker Completed

Ваша команда DIM просто создает массив, который МОЖЕТ хранить до 11 (помните,индексы начинаются с 0) фоновые рабочие объекты.

Итак, вам нужно будет создать 11 новых объектов BackgroundWorker и сохранить их в каждом элементе массива.

Затем вам нужно будетнастройте каждый объект BackgroundWorker самостоятельно, чтобы выполнить любую необходимую работу.Размещение их в массиве ничего не меняет.

...