0

メッセージ ボックスを表示しているフォームがあり、同時に同じメッセージを話す新しいスレッドを開始しました。

私が達成したいのは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
4

2 に答える 2