我正在寫一個插件(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. .NET中的語音識別
- 3. PlatformNotSupportedException使用.NET語音識別
- 4. Android語音識別服務是否忙?
- 5. .NET中的消息泵Windows服務
- 6. .net中的語音識別。 Sphinx,ISIP,Julius
- 7. .NET中的語音識別器datetime
- 8. .net問題中的語音識別
- 9. 使用消息API識別消息Android
- 10. 語音識別
- 11. WPF應用程序調用API,它需要消息泵
- 12. 語音/語音識別 - PhoneGap
- 13. 語音識別/識別
- 14. 語音識別
- 15. 語音識別所需的MFCC功能
- 16. 使用C#4.0:我們是否需要VS 2010或.NET Framework 4.0
- 17. Win7語音識別 - 通過語音識別用戶?
- 18. 在Skype上使用Bing語音識別API和node.js Bot Framework
- 19. 語音識別中爲什麼需要語法C#
- 20. 取消語音識別器任務
- 21. 我們是否可以使用Sirikit進行語音識別
- 22. Android語音識別 - 使用語言
- 23. C#語音識別 - 識別語音和執行任務
- 24. 如何使用Android語音識別來識別短語
- 25. C#語音識別
- 26. Java語音識別
- 27. 語音識別API
- 28. 語音識別和錄音
- 29. 語音識別,nodeJS
- 30. 我需要關於語音識別代碼的幫助