据我所知,从另一个线程更新UI需要调用,但是只是从UI读取数据时也需要调用吗?
例如,如果根据在大型网格中找到的数据运行计算,在读取网格中找到的值并将它们分配给计算中使用的变量时,是否需要调用网格?
如果没有,为什么不呢?
是否存在性能问题?是否最好将所有数据缓存到数组(或数据表),然后运行计算或每次读取数据时调用网格(例如,在每一行)?
我特别询问VB.NET,虽然我怀疑其他.NET语言有很大不同。
答案 0 :(得分:1)
这一切都取决于控件,有些可能会让你从非UI线程读取一些可能没有。
问题的最佳解决方案是不直接从控件中读取,拥有一些保存数据的后备对象,然后使用绑定让控件使用来自后备对象的数据。这是MVVM(模型,视图,视图模型)背后的基本前提,这是WPF中非常流行的模式,但在Winforms中也可以使用。
答案 1 :(得分:0)
没有。需要调用才能更新UI,因为只能从前台线程更新UI。关于哪个线程可以读取数据没有限制。