执行完毕再往下执行?

执行完毕再往下执行?

左直拳

我写了一段代码,如下:

Busy();

//进行大工作量,耗时的操作

BigSetup();

Free();

其中,函数Busy()的作用是将鼠标光标设为代表等待的沙漏形状,并且显示一幅忙碌的图片,而函数Free()则正好相反,将光标设回默认的箭头状,并显示清闲的图片:

private void Busy()

{

imgEpass.Image = mImgBusy;

this.Cursor = Cursors.WaitCursor;

}

private void Free()

{

imgEpass.Image = mImgFree;

this.Cursor = Cursors.Default;

}

可是,运行的结果与预期有很大落差:图片没有改变,或者说,没有单方面改变现状。

怎会这样。难道系统没等Busy()这个函数执行完,就呼啦啦(大长今?)地一直往前冲?

查帮助,上网搜索,同步、异步、线程、阻塞、……,铺天盖地,头昏脑胀,乱七八糟,却一无所获。我还想到了用Sleep(),死未。

观察程序运行,鼠标的光标确实改变了,而改变鼠标形状的语句放在改变图片之后,也就是说,图片也应该改变了,只是未反映出来。可能是没重绘吧。

修改了一下Busy()Free()

private void Busy()

{

imgEpass.Image = mImgBusy;

imgEpass.Refresh();

this.Cursor = Cursors.WaitCursor;

}

private void Free()

{

imgEpass.Image = mImgFree;

imgEpass.Refresh();

this.Cursor = Cursors.Default;

}

终于得到了我想要的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值