t1 = new Thread(new ThreadStart(this.Test));
t1.Start();
while(t1.IsAlive)
{
Thread.Sleep(100000);
}我希望建立一个线程,每隔100秒执行一次test函数,这样写怎么不行呢?一运行就死机一样

解决方案 »

  1.   

    Thread.Sleep(100000);
    是让你的当前线程睡觉,等睡醒了看看另外一个现成在不在运行,没想到他每次总是运行的,结果你的主线成一睡不醒
      

  2.   

    lionwys(lionwys)
                 不太明白
      

  3.   

    Thread.Sleep(100000);要方在Test里面的~
      

  4.   

    我不想用Timer,该怎么写呢?
      

  5.   

    viena(维也纳nn木人:
                明白了。
      

  6.   

    t1 = new Thread(new ThreadStart(this.Do));
    t1.Start();private void Do()
    {
        while(t1.IsAlive)
        {
             this.Test();
    Thread.Sleep(100000); 
        }
    }
      

  7.   

    Thread.Sleep方法是将当前线程阻塞指定的毫秒数
    你在主线程中调用,当然阻塞主线程了~
      

  8.   

    1 = new Thread(new ThreadStart(this.Do));
    t1.Start();private void Do()
    {
        while(true)
        {
             this.Test();
    Thread.Sleep(100000); 
        }
    }
      

  9.   

    Samen168(开源框架、代码生成器:                  多谢多谢