Хотя оба эти метода работают для меня, и без большой разницы во времени работы, мне интересно, какой метод «лучше» использовать, и каков опыт обоих людей.
У меня естьдва 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)
Снова, похоже, работает нормально.
Я думал о том, чтобы изучить фоновых работников, но по сравнению с Задачами они кажутся излишне сложными!
Хотя обе «работы», мне интересно знать, что люди считают «приемлемым»"или" лучший "использовать это.