gpt4 book ai didi

c# - Threading.Timer 更新值未反射(reflect)在 datagridview 中

转载 作者:太空宇宙 更新时间:2023-11-03 11:14:42 25 4
gpt4 key购买 nike

我正在使用 VS express 2010 和 .Net 4.0。

我将 DataGridView 绑定(bind)到实现 INotifyPropertyChanged 的​​ BindingList。

更改的值正常反射(reflect)在网格上,但在使用 Threading.Timers 执行更新作业时失败。

如下所示,除非像“最小化和最大化”或“网格被其他窗口覆盖”或“选择单元格”这样的单元格失去焦点,否则该值会更新但不会显示。

http://i.minus.com/jViIpKKeNNRrB.PNG

我是新手。我已经搜索过,我相信 threading.timer 在更新 UI 方面不好。但就我而言,我只是更新值。

我厌倦了玩弱线程。定时器。对轻量级计时器的任何其他建议将不胜感激!谢谢。

最佳答案

Threading.Timer 在更新 UI 方面并不“糟糕”,它只是在与 UI 线程不同的线程上触发事件,因为 UI 必须在 UI 线程上更新,所以您我遇到了困难。

您需要在 UI 线程上调用更新。

最简单的方法是:

myControl.Invoke((Action)(() =>
{
myControl.Text = "Hello";
}));

显然将您的代码替换到我的示例中。

让我知道这是否有效。

关于c# - Threading.Timer 更新值未反射(reflect)在 datagridview 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13023020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com