我现在做一个服务处理程序,从队列里读取数据,每读1000条就更新次数据库。现在有种情况如果从队列里读不到数据了,而数据不满1000条的,就会一直不更新数据库,这样显然是不好的,请问各位有什么解决办法吗,如果用超时的话,想不到怎么做这个超时判断,希望大家给个意见

解决方案 »

  1.   

    class BasicWaitHandle {
      static EventWaitHandle wh = new AutoResetEvent (false);
     
      static void Main() {
         new Thread (Waiter).Start();
         Thread.Sleep (1000);                   // 等一会...
         wh.Set();                              // OK ——唤醒它
      }
     
      static void Waiter() {
         Console.WriteLine ("Waiting...");
         wh.WaitOne();                         // 等待通知
         Console.WriteLine ("Notified");
      }
    }
      

  2.   

    读完之后线程会自动关闭的,可以用Thread.IsAlive来判断。
    如果IsAlive==true,说明数据都读完了。
      

  3.   

    或者,读完数据之后,raise一个表示处理完成的事件也可以吧。