[问题] 动态更新Label值

楼主: Anthony53 (安东尼)   2014-02-10 10:59:15
如果我从DB中捞资料
捞完资料后要立即更新Lable值
之后每30秒会捞一次资料
我想要在捞完资料后立即更新Label值
我尝试用Timer
但他只能控制时间
可是我希望是在我做完这个动作后的下一行更新Label值
而不是每30秒更新值
我也试过委派了
可是都不行 请问还有什么办法吗 谢谢
作者: a926 (Aaron)   2014-02-10 11:06:00
?? Timer每30秒触发事件后->DB捞资料->更新Label值是你的流程有问题吗?
作者: KanoLoa (卡)   2014-02-10 13:23:00
更新label.text 之后,多一行label.update看看你第一次捞资料的时候有确定连接到数据库了吗
作者: Litfal (Litfal)   2014-02-10 13:25:00
是DB端有问题还是UI端有问题?所以说要把物件职责拆开阿...至少把DbContext和UI分开,改用事件通知来写。
作者: johnpage (johnpage)   2014-02-10 15:07:00
timer使用有问题
作者: Litfal (Litfal)   2014-02-10 19:04:00
A到底是string还是Control...怎么会有A.Text而且你这Timer也没有重新捞资料阿
作者: KanoLoa (卡)   2014-02-11 00:25:00
会,捞资料太慢配上你的timer逻辑可能会卡到没更新画面先试试看把label那行丢在button2事件最后一行测试正确不过这种写法不好,别在UI事件中放可能会读取很久的逻辑额外开一个新的执行序去捞资料UI更新画面会等你事件全处理好才一次更新,自然会跳过
作者: m339606 (mize)   2014-02-11 12:27:00
AJAX + AJAX Timer
作者: KanoLoa (卡)   2014-02-11 13:01:00
因为整个事件要等你循环跑完才更新画面阿,当然会延迟。创一个执行绪去额外跑回圈,会稍微好一点http://support.microsoft.com/kb/318607/zh-tw鬼打墙了,请开另一个执行续跑回圈,循环速度慢点即可。你知道更新画面的函示是哪个吗?
作者: Litfal (Litfal)   2014-02-11 18:33:00
你都用Timer了何必用循环哩...?
作者: KanoLoa (卡)   2014-02-11 18:57:00
干脆全贴吧
作者: largesperm (reindeer)   2014-02-11 20:28:00
用 backgroundworker
作者: KanoLoa (卡)   2014-02-11 23:20:00
舍弃你的循环吧,另开一个timer慢慢+++++会比较容易理解
作者: Litfal (Litfal)   2014-02-12 00:32:00
回去重读Timer!上面就想推荐用System.Threading底下的Timer
作者: KanoLoa (卡)   2014-02-12 01:01:00
用一个timer一直检查数值是否有变动来决定要不要更新循环要拿掉!然后不要一直捞资料,不然都卡在那边

Links booklink

Contact Us: admin [ a t ] ucptt.com