Лучшим вариантом может быть написание асинхронного метода, который воспроизводит аудио в фоновом режиме.Таким образом, вы можете ожидать этот метод:
Private Async Function PlayInBackgroundAsync(data As Stream) As Task
Await Task.Run(Sub() My.Computer.Audio.Play(data, AudioPlayMode.Background)).ConfigureAwait(False)
End Function
Просто обратите внимание, что любой метод, который вы ожидаете вызова метода, должен быть объявлен Async
, например,
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Await PlayInBackgroundAsync(My.Resources.music)
End Sub
Использование await означает, чтовыполнение не будет продолжено, пока не завершится код в выполняемом методе, но пользовательский интерфейс также не будет заблокирован.