【发布时间】:2016-04-12 16:12:00
【问题描述】:
我有这个代码:
Private Sub NewRecallLabel_TextChanged(sender As Object, e As EventArgs)
Dim myrecalllabel As Label = TryCast(sender, Label)
Dim SpeechSynthesizer As New SpeechSynthesizer
SpeechSynthesizer.Speak("Ticket number " & TTSTicket & ", please proceed to counter " & TTSCounter)
End Sub
发生的情况是,当 TextChanged 事件触发时,UI 会在执行说话代码时冻结。 我知道使用 SpeakAsync 可以解决问题,但是当触发多个 TextChanged 事件时,音频会重叠 - 我不希望这种情况发生。
谁能告诉我如何避免这种情况?
【问题讨论】:
-
可能和this一样
-
您的目标是哪个 .NET 版本?
-
我的目标是 .NET v4 先生。
-
啊,好的。我已经删除了我的答案,因为它适用于 4.5 及更高版本。虽然 4.0 完全可以实现完全异步版本,但它要麻烦得多。请暂时使用@Gubr 的拦截解决方案。
-
我尝试了@Gubr 的解决方案,但它冻结了 UI。
标签: vb.net