When using the win32API to play a wav from
VB NET you need to first declare the following...
'//Win32API
'//Both integer args and return were originally Longs - .NET Integer = vb6 Long
Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Integer, _
ByVal dwFlags As Integer) As Integer
Then you can make a sub....
Friend Sub PlayAudio(ByVal FileName As String)
'//call win32api function to play audio (wav) file alert
Dim retval As Integer
retval = PlaySound(FileName, 0, 1)
'last param is SND_SYNC as integer
'value set to 0 plays sound Synchronously (waits until sound ends before playing next)
'value set to 1 plays sound Asynchronously (does not wait to play next sound)
End Sub
in the comments above you'll see that the last param determines if sound waits or or doesn't. If you want you can modify the sub above to take that as a param as well. This is a snippet from an app I wrote for work. This should solve your problem, just use value of 1 to make app not wait for sound to finish. Threads shouldn't be necessary.
hope this helps
Tek