作者teamspike (市政府7F)
看板C_Sharp
标题[问题] 新执行绪还是会冻结主执行绪视窗?
时间Fri Sep 12 15:12:32 2008
全域变数
int i = 0;
主程式
Thread t = new Thread(new ThreadStart(DrawTest));
t.Start();
副程式
private void DrawTest()
{
while(true)
{
textBox.Text = i.toString();
textBox.Update();
}
}
以上的做法可以使textBox显示递增的数字
使用新Thread执行就是因为不想让主执行绪冻结
可是使用上述的方式,只要在程式执行时拖拉移动视窗
滑鼠游标就会显示沙漏
而且控制项就不能重绘了
请问这到底是为什麽呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.216.193
1F:→ teamspike:抱歉忘了加i++, 问题还是一样 09/12 15:16
2F:推 horngsh:适当的地方加Application.DoEvents(); 09/12 15:59
3F:→ teamspike:抱歉,还是不懂 09/12 16:43
4F:→ teamspike:我想你说的会不会是正常显示数字的label? 09/12 16:44
5F:→ teamspike:可是我是数字可以正常显示,Form却不能移动 09/12 16:45
6F:→ teamspike:懂了,加在回圈里面,谢谢 09/12 17:01
7F:推 tomex:理论上这会有跨thread的错误,你停止warning吗?但这危险呀 09/14 12:08