日期:2014-05-17  浏览次数:20861 次

【新人】麻烦问一下关于线程Thread.Sleep()用法
直接上实例,下面是一个错误的实例请帮我更正一下吧:

     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())线程有作用,只是猜测,请问应该怎么更正?

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