Задачи -v- Parallel.Invoke - PullRequest
       30

Задачи -v- Parallel.Invoke

0 голосов
/ 19 октября 2018

Хотя оба эти метода работают для меня, и без большой разницы во времени работы, мне интересно, какой метод «лучше» использовать, и каков опыт обоих людей.

У меня естьдва Sub, которые запускают две совершенно разные подпрограммы параллельно;давайте назовем их Sub1 и Sub2, так как мое воображение еще не запущено сегодня!

Я использовал Parallel.Invoke так:

Parallel.Invoke(New Action(AddressOf Sub1), New Action(AddressOf Sub2)

Это работало нормально.Затем я обнаружил потоки и задачи ...: -)

Я изменил его на:

Dim task As Task
Dim tasks As New List(Of Task)

task = New Task(Sub() Sub1())
tasks.Add(task)
task.Start()

task = New Task(Sub() Sub2())
tasks.Add(task)
task.Start()
Task.WaitAll(tasks.ToArray)

Снова, похоже, работает нормально.

Я думал о том, чтобы изучить фоновых работников, но по сравнению с Задачами они кажутся излишне сложными!

Хотя обе «работы», мне интересно знать, что люди считают «приемлемым»"или" лучший "использовать это.

...