我正在写一个插件(dll文件),并且我正在创建一个WinForm作为它的接口/对话框。 如果确实需要消息泵,我应该如何以及在哪里创建消息泵?使用.NET Framework的语音识别是否需要消息泵?
1
A
回答
0
如果以通常的方式创建Winforms应用程序,它将创建自己的消息泵。这就是你应该需要的。
1
您不必创建一个,WinForm应用程序就有一个。
2
SpeechRecognitionEngine是一个公寓线程COM服务器的包装。是的,对它们的一个硬性要求是至少有一个线程是STA并且产生一个消息循环。由于您正在编写图书馆,因此无法控制客户选择的内容。但是你可以告诉她有一个问题,而不是让你的语音识别器陷入僵局。此检查添加到您的类的构造函数:
if (System.Threading.Thread.CurrentThread.GetApartmentState() !=
System.Threading.ApartmentState.STA) {
throw new InvalidOperationException("UI thread required");
}
的检查是有点笨拙,如果在一个程序,它也有一个UI线程工作线程创建的识别器仍然可以工作。虽然这种模式是非常不可取的,但每次对识别器的调用都会被封送,并且您生成的任何事件都必须由客户端封送。我会建议你的主类构造函数的一个参数,它允许客户端指示她真的确实想让识别器在一个线程上运行。
相关问题
- 1. 是否有Control.Invoke泵消息?
- 2. PlatformNotSupportedException使用.NET语音识别
- 3. 即使在使用.NET语音识别命名空间的时候,是否需要安装Speech SDK以便能够进行语音识别?
- 4. .NET中的消息泵Windows服务
- 5. .NET中的语音识别器datetime
- 6. .net问题中的语音识别
- 7. .net中的语音识别。 Sphinx,ISIP,Julius
- 8. 语音/语音识别 - PhoneGap
- 9. WPF应用程序调用API,它需要消息泵
- 10. 语音识别/识别
- 11. 语音识别
- 12. 使用C#4.0:我们是否需要VS 2010或.NET Framework 4.0
- 13. Android语音识别 - 使用语言
- 14. C#语音识别 - 识别语音和执行任务
- 15. 如何使用Android语音识别来识别短语
- 16. C#语音识别
- 17. Java语音识别
- 18. 语音识别,nodeJS
- 19. 我需要关于语音识别代码的帮助
- 20. 语音识别vb6
- 21. Android语音识别?
- 22. Android - 语音识别
- 23. 语音识别(或声音)
- 24. android语音识别
- 25. 语音识别API
- 26. C语言中的Windows语音识别#
- 27. 语音识别:印地语还是Gujarti?
- 28. PHP语音识别?
- 29. JavaScript语音识别
- 30. C#语音识别