メッセージ ボックスを表示しているフォームがあり、同時に同じメッセージを話す新しいスレッドを開始しました。
私が達成したいのはOK
、メッセージボックスのボタンをクリックするとすぐにスレッドがメッセージを話すのを止めることです.
メッセージ ボックスをクリックするとすぐに中止コマンドを使用してスレッドを強制終了しようとしましたOK
が、メッセージ ボックスが消えても SPEAK プロセスはメッセージ全体を話し続けます。
新しいスレッドは中止コマンドによって強制終了されていると思いますが、speak プロセスはメッセージを話すためにプレーヤーを使用している可能性があり、そのプレーヤーは停止されていません。どんな助けでも大歓迎です。
コードは次のとおりです。
Imports SpeechLib
Public Class Form1
Public voice As SpVoice = New SpVoice()
Public speak As Boolean = True
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
Dim t1 As New Threading.Thread(AddressOf THREAD)
t1.IsBackground = True
t1.Start()
MessageBox.Show("Data has not been saved yet. Are you sure you want to quit with out saving the chandes?")
t1.Abort()
End Sub
Public Sub THREAD()
If (speak = True) Then
voice.Speak("Data has not been saved yet. Are you sure you want to quit with out saving the chandes?")
End If
End Sub
End Class