[问题] 跨执行绪快速更新UI的问题

楼主: james732 (好人超)   2015-05-19 17:41:42
目前用Winform写一只小程式
上面有个Label与DataGridView
首先会开启一个新的执行绪,然后产生乱数值
(实际使用时,这个值会从serial port读进来)
然后把这个值更新至Label与DataGridView上
并把DataGridView卷动到最下面
Github: https://github.com/james732/C_Shape_Test
main form的Code:
https://github.com/james732/C_Shape_Test/blob/master/AutoRollTest/Form1.cs
执行起来像这样

如果资料进来的速度不快,那看起来都很OK
但是如果资料速度快,就会看到上面Label的值停止更新
DataGridView仍然可以自动卷动
(速度可在第65行的 if (!exitEvent.WaitOne(30)) 控制)
但如果取消DataGridView的卷动功能 (把Checkbox取消)
那么Label的更新就不会卡住
我想请问,为什么会这样子呢?有没有办法让我Label的值不会卡住?
(有漏掉没关系,但不要停住,希望有在跳动就好)
感谢 :)
作者: Litfal (Litfal)   2015-05-19 19:17:00
未测先猜Refresh问题试试看在38行下面加一行 label1.Update();

Links booklink

Contact Us: admin [ a t ] ucptt.com