现在我用控制台,需要用计时器(Timer)时时监控,可是如果时间太短,就会读不完上次计时器查找的内容,然后就马上报一个内存的错误,再不改变计时器间隔时间大小的情况下,如何把他放入一个线程或者进程里(两者不太懂),保证他的读取完整,并且不报错。。

解决方案 »

  1.   

    如果一定要等上次计时器完毕,那就不用计时器,单开一个线程就可以了:void MyThread()
    {
       while(true)
       {
           DateTime start = DateTime.Now;
           DoWork();
           TimeSpan elapsed = DateTime.Now - start;       if( elapsed <  TimeSpan.FromSeconds(10))
        {
              Thread.Sleep( TimeSpan.FromSeconds(10) - elapsed);
           }      
       }
    }
      

  2.   

    顺便补充一下,现在没加线程就报 这个错 vshost clr2.exe已停止工作 。。请问这是怎么回事?