我要写个闹钟程序    A 里面是计算 离闹铃时间还有多少   B 是一个 TIMER 事件 。
    A 里算出来 还有 5 分钟      触发 B  B 5分钟后结束   (如何让A等这5分钟? )事件A  for (int i = 0; i < every.Length - 1 ; i++)
               { // todo}事件B     int i = timelose;
            if(i > 0) { timelose--; };
            if(i == 0)
            {
                System.Media.SystemSounds.Beep.Play();
                timeralam.Enabled = false;
            }能不能让 B  完成了以后 让 A 开始第二次循环? 

解决方案 »

  1.   

    (如何让A等这5分钟? )A线程挂起,B  完成了以后,A再继续
      

  2.   

    再加个timer,做计算出来时间的延时不就行了,不过一楼的方法比较好
      

  3.   

    在加TIMER 如果我有更多的 时间记录 挂起的TIMER 就很多了。想问下线程 怎么写 ? C#  给个框架就行?
      

  4.   

    using System.Threading;
    ThreadPool 可以解决
      

  5.   

    Application.DoEvents(); 是不是也可以?
      

  6.   

    使用System.Timers.Timer 来进行记时任务,在主程序中循环记时,当到达5分钟启动Timer任务。 并使用AutoResetEvent 阻塞当前线程,当任务完成后重置AutoResetEvent。注意在进入Timer 任务函数时,使用Interlocked.CompareExchange(ref a,int b,int c) 进行判断,防止重入。
      

  7.   

    最后自己写了个线程 循环事件  SLEEP() 相应时间即可。