首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF高频事件和更新UI

WPF高频事件和更新UI
EN

Stack Overflow用户
提问于 2019-01-18 00:32:36
回答 1查看 235关注 0票数 1

我有一个连接到USB设备的WPF应用程序。所述设备以大约10/秒的速率引发事件。这些事件中的数据会更新条形图和折线图。条形图表示每个事件发生时的数据。折线图用于显示一段时间内的值,并从测量开始时的历史值集合中读取。

我的问题是,在大约3-5分钟的测量之后,UI变得非常慢,最终没有响应。我认为这是因为下面的代码片断出现得太频繁,最终锁定了UI线程。

代码语言:javascript
复制
System.Windows.Application.Current.Dispatcher.BeginInvoke(new Action(() => 
{ 
    Update the collection here.
}));

有没有更好的方法来更新集合,以避免锁定UI?

EN

回答 1

Stack Overflow用户

发布于 2021-02-02 17:51:31

当然你已经解决了你的问题。但是,这不是内存泄漏。

BeginInvokes排队的“更新集合”-tasks很可能比分派器所能完成的要多。在某个时刻,调度器必须处理数以千计的任务,同时BeginInvoke每秒将10个新任务排入队列。要解决这个问题,您需要确保Dispatcher不会被新任务压垮。您可以仅使用最新数据从单独的线程更新UI。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54240344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档