在WindowsFormsHost控件中更新WinForms图表时,WPF WebBrowser未更新

本文关键字:更新 WPF WebBrowser WindowsFormsHost 控件 WinForms | 更新日期: 2023-09-27 18:21:29

我有一个带有两个窗口的WPF应用程序。其中一个窗口包含WebBrowser控件。另一个窗口包含WindowsFormsHost,它承载用于绘制折线图的WinForms Chart控件。我尝试了使用WPF Toolkit提供的图表,但内存消耗正在增加。我正在显示一个带有javascript的本地HTML文件,以在谷歌地图上显示位置。位置每100毫秒更新一次。除了位置,还接收到一些其他数据,我必须在折线图上显示这些数据。

在测试过程中,我观察到图形和浏览器都以500ms的间隔进行了很好的同步更新。但当频率更改为100毫秒时,浏览器将停止更新。还观察到,如果停止在图表上绘制数据,则浏览器瓦片会再次加载,位置也会更新。

有没有关于问题可能是什么的线索??

在WindowsFormsHost控件中更新WinForms图表时,WPF WebBrowser未更新

这听起来像是一个经典的例子,要么是一个非常繁忙的主线程(UI线程)正在更新图表,要么是缺少对web浏览器控件的主线程更新。或者,如果除了主线程之外,您有单独的线程来更新图表和web浏览器,那么与更新web浏览器的I/O延迟相比,更新图表的I/O延迟也很短,因此图表更新线程正在耗尽web浏览器的更新。即使web浏览器更新和图表更新来自不同的线程,而不是UI线程,一个线程也可能会耗尽另一个线程。有太多的方法可以解决这个问题,请在这里列出。你只需要确保对图表和web浏览器控件进行更新的线程有一个平衡/平等的机会来获得一个时间段来完成他们的工作。