Используйте 'async' и 'await' в VB.net без необходимости возврата - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть веб-приложение, и мне нужно скопировать пакет файлов с одного общего файлового сервера на другой после нажатия кнопки, поэтому асинхронный и awit хороший способ для этого.Я не уверен, что мне нужно Task.Run здесь?Является ли RunMoving () лучше перейти в другой класс для повышения производительности?

Вот мой код VB.NET следующим образом:

Public Sub FileMoving()
    PdfsMovingAsync()
    DoSomethingElse()
End Sub

Private Async Sub PdfsMovingAsync()
    Await Task.Run(Sub() RunMoving())
End Sub

Private Sub RunMoving()
    'Thread.Sleep(2000)
End Sub

1 Ответ

0 голосов
/ 20 февраля 2019

PdfsMovingAsync должен вернуть Task.Вы хотите избежать Async Subs.

Так как DoSomethingElse не зависит от завершения PdfsMovingAsync, то они могут выполняться одновременно.

Public Sub FileMoving()
    PdfsMovingAsync()
    DoSomethingElse()
End Sub

Private Function PdfsMovingAsync() As Task
    Return Task.Run(Sub() RunMoving())
End Function 

Await в идеале следует использовать для фактическогодождитесь функции, если что-то зависит от ее первого завершения.

Ссылка Асинхронное / ожидание - Рекомендации по асинхронному программированию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...