在开发基于C#语音控制系统的时候,由于要通过语音输入,获取到语音内容后,在界面上显示出来语音输入的内容。但是在获取语音的时候,直接修改界面的内容。就容易报错“调用线程无法访问此对象,因为另一个线程拥有该对象”。这种内容是由于获取语音的功能方法里面直接调用了处理主线程界面的UI。参考网络上一些网友的建议,解决办法是考虑通过Thread方式,来处理主线程界面的UI。代码如下:
private void createThread(String content)
{
Thread nThread = new Thread(() =>
{
this.Dispatcher.Invoke(DispatcherPriority.Normal,
new Action(() => this.lbl_VoiceContent.Content = content));
});
nThread.Start();
}
这段代码就是WPF中,Thread处理主线程UI界面的代码。仅供参考