WPF-导航块应用程序(性能差)

WPF-导航块应用程序(性能差),wpf,performance,navigation,Wpf,Performance,Navigation,我有一个生成MIDI音符的WPF应用程序(音序器) 除了UI线程外,还有一个触发notes的计时器线程。一般来说,计时是正常的,但我有以下问题:每当我进行任何导航时,应用程序似乎都会“阻塞”(即计时器“出错”,输出会短暂停止)。当打开新窗口或在导航窗口上执行导航时,会发生这种情况 当我导航到一个已经实例化并且已经显示过的页面时,也会发生这种情况 有人有什么想法吗 编辑:我认为实际的问题是:有人知道一种让导航更快的方法吗?我不确定,但是你的eventhandler(\u midiInternalC

我有一个生成MIDI音符的WPF应用程序(音序器)

除了UI线程外,还有一个触发notes的计时器线程。一般来说,计时是正常的,但我有以下问题:每当我进行任何导航时,应用程序似乎都会“阻塞”(即计时器“出错”,输出会短暂停止)。当打开新窗口或在导航窗口上执行导航时,会发生这种情况

当我导航到一个已经实例化并且已经显示过的页面时,也会发生这种情况

有人有什么想法吗


编辑:我认为实际的问题是:有人知道一种让导航更快的方法吗?

我不确定,但是你的eventhandler(\u midiInternalClock\u Tick)不会在你的UI线程中执行吗

因此,MIDI内部时钟可能正在另一个线程中执行,但对滴答声的处理不会。就像我说的,我不确定

您可能希望将使用Midi工具包的代码分离到一个单独的类中,然后在不同的线程中构造时钟来处理它的事件


如果那没用,我就不知所措了。我想你最好在CodeProject页面上提问。

我不确定,但是你的eventhandler(\u midiInternalClock\u Tick)不会在你的UI线程中执行吗

因此,MIDI内部时钟可能正在另一个线程中执行,但对滴答声的处理不会。就像我说的,我不确定

您可能希望将使用Midi工具包的代码分离到一个单独的类中,然后在不同的线程中构造时钟来处理它的事件


如果那没用,我就不知所措了。我想你最好在CodeProject页面上提问。

最好粘贴一些代码,尤其是(我认为)如何构造和使用不同的线程。我使用Leslie Sanford的MIDI工具包()中的时钟和常规UI线程(即,我没有显式创建这些线程)。我试着降低UI线程的优先级,但这并没有帮助。嗯,也许会发布一些代码。查看CodeProject页面,我认为您的代码是在同一个线程中执行的。我检查了这个:它是在另一个线程中执行的。您希望看到哪些代码?查看控制MIDI工具包的代码(向其发送必要的命令)可能会很有趣。MIDI工具包可能在单独的线程中运行,但如果您的命令在UI线程中运行,这可能解释了延迟。最好粘贴一些代码,特别是(我认为)如何构造和使用不同的线程。我使用Leslie Sanford的MIDI工具包()中的时钟和常规UI线程(即,我不显式创建这些线程)。我尝试降低UI线程的优先级,但这没有帮助。嗯,可能还是会发布一些代码。查看CodeProject页面,我认为您的代码是在同一个线程中执行的。我检查了以下内容:它是在另一个线程中执行的。您希望看到哪些代码?查看控制MIDI工具包的代码可能会很有趣(向其发送必要的命令)。MIDI工具包可能在单独的线程中运行,但如果您的命令在UI线程中运行,这可能会解释延迟。事件处理程序肯定是由另一个线程执行的-我检查了这一点。但是非常感谢您的帮助!如果您找到了解决方案,如果您将其发布在此处,那将非常好(你可以回答你自己的问题)。我想知道它是如何解决的。祝你好运!事件处理程序肯定是由另一个线程执行的-我检查了这个。但是非常感谢你的帮助!如果你找到了解决方案,如果你把它发布在这里就好了(你可以回答你自己的问题)。我想知道它是如何解决的。祝你好运!