Я разрабатываю приложение с распознаванием речи в C# с использованием оконных форм. Моя система имеет 3D-анимированный визуальный интерфейс, встроенный в приложение Windows Form. Визуальный компонент представляет собой COM-компонент (ActiveX). Визуальный компонент использует движок Text-to-speech (TTS), но для доступа к TTS я использую API-интерфейс компонента. Я напрямую не использую TTS с помощью SAPI. Механизм TTS, используемый визуальным компонентом, является TTS по умолчанию, доступным в Windows. Этот визуальный компонент имеет важное ограничение, он не может работать на нескольких ядрах. Поэтому, когда я запускаю приложение, я устанавливаю близость процессора к 1 ядру. Поскольку все находится в одном и том же виде, все части (то есть графическая визуализация, TTS, распознавание речи и т. Д.) Приложения работают с использованием 1 ядра.Многопоточность для пользовательского интерфейса WinForm/C#
Этот компонент постоянно отображает графику на экране, это интенсивный процесс, и он никогда не останавливается. Кроме того, работает встроенный распознаватель речи. Когда TTS активен, если пользователь разговаривает с системой, приложения замораживаются в течение нескольких секунд, а затем возвращаются в нормальное состояние. Я хочу решить эту проблему. Я попытался установить процесс оконной формы на более высокий приоритет, например, в режиме реального времени, высокий, но это не сработало.
Я хочу запускать в распознавателе речи или COM-компоненте в разной непрерывной нити, чем основной поток winform. Любые предложения, похожие образцы могут помочь.
Попробуйте использовать [BackgroundWorker] (http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker (v = vs.110) .aspx). – cubski
Этот вопрос слишком широк для переполнения стека, который задает конкретные вопросы о кодировании с определенными ответами, но он может быть уместен для [programmers.stackexchange.com] (http://programmers.stackexchange.com), который предназначен для обсуждения концепций и передовых методов высокого уровня. Пожалуйста, прочитайте [этот мета-пост] (http://meta.stackexchange.com/a/82990/228805) для получения дополнительной информации. –