直接上实例,下面是一个错误的实例请帮我更正一下吧:     private void button1_Click(object sender, EventArgs e)
        {
            Thread myThread;
            myThread = new Thread(new ThreadStart(ConsoleH));
            myThread.Start();
            Thread.Sleep(10000);
        }
  
     private void ConsoleH()
       {
          MessageBox.Show("我想10秒后才弹出此框!");
       }我想使用Thread.Sleep(10000)使它10秒后才弹框,但是发现这样写是不对的,它还是会直接弹框,1秒也不停留,反倒是关闭窗体时会延迟10秒才关闭,我猜测可能这个Thread.Sleep(10000)对myThread这一线程没用,而是对WinForm本身的Application.Run(new Form1())线程有作用,只是猜测,请问应该怎么更正?

解决方案 »

  1.   

    你这样写有啥用,线程在执行,Thread.Sleep根本不影响线程内部执行,要延时也要在线程内部做延时,放到  ConsoleH中
      

  2.   

    您是说吧Thread.Sleep(10000)放在ConsoleH()函数中吧? private void ConsoleH()
           {
              Thread.Sleep(10000);
              MessageBox.Show("我想10秒后才弹出此框!");
           }
    成功了!谢谢!!!!非常感谢
      

  3.   

    Thread.Sleep 是休眠当前线程,当你new 一个 Thread的时候,这个new出来的是另外一个线程,所以你应该改成在MessageBox语句之前加这个Sleep