Непредвиденное поведение потоков в клиентском API Bing речь в приложении WinForms
Я использую библиотеку Microsoft.ProjectOxford.SpeechRecognition-x64 v.1.0.0.7 в проекте x64 WinForms. Кажется, все работает как в WPF, так и в консольных приложениях; однако в приложении WinForms этот вызов:
aMicrophoneRecognitionClient.StartMicAndRecognition()
кажется, вызывает проблемы. Вместо немедленного возврата и обработки в фоновом рабочем потоке SpeechRecognitionService (который создается должным образом), этот вызов действует синхронно и не возвращается, пока не истечет время ожидания молчания. Когда вызов введен, я получаю обратный вызов OnMicrophoneStatus с e.Recording = true, затем период ожидания (без отправленных буферов, AFAIK) и затем OnMicrophoneStatus=false, а затем фактически возвращается StartMicAndReecognition. Я попытался заглушить все обработчики событий, чтобы убедиться, что это не проблема обратного вызова - хотя я начинаю вызывать поток пользовательского интерфейса, когда это уместно - и вызов все еще кажется заблокированным. Поведение является одинаковым независимо от того, сделан ли он из основного потока пользовательского интерфейса или из рабочего потока.