while
{
   //可不可以限定每次经过的时间
   //如果超时了就continue;
}

解决方案 »

  1.   

    while 

      //可不可以限定每次经过的时间   把这段单独开个线程
      然后用t.jion(时间) 这样如果在时间内结束则返回TRUE 否则超时返回FALSE
      //如果超时了就continue; 
    }
      

  2.   

    using System;
    using System.Threading;namespace TestConsole
    {
        class Program
        {
            static void Main(string[] args)
            
               
                while(int i = 0; i < 100; i++)
                {
                    Thread t1 = new Thread(ThreadCheckTime);
                    t1.Start();
                    Thread.Sleep(10000);
                    if (t1.ThreadState==ThreadState.Stopped)
                        continue;
                    Console.WriteLine("this is the main tread. ");
                    t1.Interrupt();
                }
               
            }        static void ThreadCheckTime()
            {
                Thread.Sleep(1000);
                Console.WriteLine("Search is time out. ");
            }
        }
    }
      

  3.   

    while(int i = 0; i < 100; i++) 
                { 
                    Thread t1 = new Thread(ThreadCheckTime); 
                    t1.Start(); 
    //                Thread.Sleep(10000); 
    //代码体写在这里的话,下面的判断还不是要等到这段代码体完成?
                    if (t1.ThreadState==ThreadState.Stopped) 
                        continue; 
                    Console.WriteLine("this is the main tread. "); 
                    t1.Interrupt(); 
                }
      

  4.   

    t1.Interrupt(); 
    不对,至少是t1.Abort();
    这个代码有问题,Thread.Sleep(100000000000)
    还是要等他sleep完了才continue. 
    另,
    以上错误代码,出自本人...
      

  5.   

    不用加Timer也可以
    设定一个全局变量startime记录循环开始的时间startime=now();while 

    if (now()-startime=***)
      则退出循环
    }
      

  6.   

    不懂为啥要加线程,加Timer
    取系统时间不是很好么。
      

  7.   

    我记得在做stock侦听的时候,用到过
    侦听开始后,如果有信息过来,就开始接收,并记录开始时间
    如果在在一段时间内还没有收到结束标志,就要做异常处理
      

  8.   

    while(true){
    /* 限制的时间*/
    System.Threading.Thread.Sleep(3000/* 这里是3秒*/);
    /*
    这里是你的业务代码*/
    }
      

  9.   

    用Timer吧
    很方便的,设置一个时间间隔就OK了。
      

  10.   

                int now = Environment.TickCount;  //系统启动后经过时间            while (Environment.TickCount - now <= 10000)
                {
                    // your code
                }
      

  11.   

    如果是线程执行时间长,超过规定时间就强制结束的话,可以这样
    设置一个timer,线程一run,就打开这个timer,如果timer到了,就看线程是不是还在运行,是就杀掉
    如果,线程已经做完了,时间还没有到,这个需要设置一个全局的变量,来表明状态,在线程结束的地方关掉这个timer