首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF处理耗时的UI线程更新

WPF处理耗时的UI线程更新
EN

Stack Overflow用户
提问于 2011-04-13 20:02:01
回答 2查看 400关注 0票数 2

我有一个WPF应用程序,其中很多时间都花在更新UI上的控件(一个数据可视化控件,当添加的可视化数据相当大时,它会导致应用程序冻结)。我不能使用后台线程并调用dispatcher,因为添加到可视化工具中的数据必须归UI线程所有(即,可视化工具中的数据点)。我不喜欢UI冻结这么长时间。我在这里有什么选择?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-13 20:10:46

我建议首先分析应用程序以找到瓶颈。我打赌这会缩小你的问题范围。

票数 1
EN

Stack Overflow用户

发布于 2011-04-13 20:35:47

如果设置正确(以WPF的方式),它可能会接受一些ViewModel类作为数据源。如果您逐个更改该值,则可能每次都会更新GUI,这是非常昂贵的。检查是否有SuspendLayout /ResumeLayout方法或其他方法。或者看看如果您创建一个新的视图模型(或深克隆现有的视图模型),将所有内容写入该视图模型,然后将DataSource设置为该视图模型,会发生什么情况。

我不知道你使用的是什么控件,但是来自Winforms DataGridView的一个例子。有两种手动添加行的方法:调用AddRow一次添加一行,调用AddRows一次性添加一堆行,然后写入它们。AddRows比AddRow快几个数量级。阅读你的控制手册。

GJ

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

https://stackoverflow.com/questions/5648852

复制
相关文章

相似问题

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