WPF - Приложение блоков навигации (низкая производительность) - PullRequest
2 голосов
/ 27 июня 2011

У меня есть приложение WPF, которое генерирует ноты MIDI (секвенсор).

Помимо потока пользовательского интерфейса, существует поток таймера, который запускает ноты.В целом, с синхронизацией все в порядке, но у меня возникает следующая проблема: всякий раз, когда я делаю какую-либо навигацию, приложение «блокируется» (т. Е. Таймер «спотыкается» и выход останавливается на короткое время).Это происходит, например, когда я открываю новое окно или выполняю навигацию в окне навигации.

Это также происходит, когда я перехожу на страницу, которая уже была создана и была показана ранее.

у кого-нибудь есть идеи?

РЕДАКТИРОВАТЬ: Я думаю, что фактический вопрос: Кто-нибудь знает способ сделать навигацию быстрее?

1 Ответ

0 голосов
/ 29 июня 2011

Я не уверен, но не будет ли ваш обработчик событий (_midiInternalClock_Tick) выполняться в вашем потоке пользовательского интерфейса?

Так что MidiInternalClock может выполняться в другом потоке, но обработка тиков не будет.Как я уже сказал, не уверен в этом.

Возможно, вы захотите разделить код, который работает с инструментарием Midi, на отдельный класс, а затем сконструировать часы и обработать его события в другом потоке.

Если это не поможет,Я в недоумении.Полагаю, вам лучше задать свой вопрос на странице CodeProject.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...