//一个按钮单击事件执行以下代码
private void BtnClick(....)
{
this.pictureBox1.Image = this.pictureBox2.Image;  第一行
Thread.Sleep(1000);                               第二行
this.pictureBox2.Image = null;                    第三行
}执行的顺序为什么是:  第二行,再第一行,再第三行  ?
我的意思是要先  第一行,再第二行,再第三行  我想先执行第一句代码后,再等一秒钟,再执行第三行代码。  大家给我提示啊,
100分给你啊。  我在线等。  一个小时后结贴!!!  谢谢

解决方案 »

  1.   

    在同一线程里这样做当然不行啦,用Timer来做吧,或者你自己另起一个线程也可以
      

  2.   

    第一行已经执行了,但是UI还来不及更新,你的SLEEP就让UI线程停下来了,所以等SLEEP完成之后,UI的更新你才能看到……
      

  3.   

    sleep的本质是本地线程阻塞。调用它的线程放弃CPU时间片而已。
      

  4.   

    问题已解决,加一个线程,谢谢大家咯。结分咯。
    new Thread(new ThreadStart(ClearImage)).Start();
    private void ClearImage()
            {
                Thread.Sleep(300);
                twoPic.Image = null;
                onePic.Image = null;
            }
      

  5.   


    很精辟了 呵呵 就用个多线程吧 C#线程又简单的很 单一主线程 sleep 鼠标就成沙漏了 啥也干不了 timer 也不错 嘿嘿我也新手 说错多担待 :B