如何在条件为真时停止和恢复正在运行的程序

本文关键字:恢复 程序 运行 条件 | 更新日期: 2023-09-27 18:06:54

我正在使用c#从早上6点到下午6点运行发送短信程序。我想在下午6点的时候停止这个过程,在第二天早上7点的时候重新开始这个过程。下面的代码不起作用。当程序运行时,它不会在时间是下午6点时停止。请帮我解决这个问题。谢谢你

new Thread(delegate()
{ 
    while (DateTime`me.Now.Hour.ToString("HH") != "18")
    {   
       sms.endSMS();
       Thread.Sleep(20000);}    
       Thread.Sleep(500000);
}).Start();

如何在条件为真时停止和恢复正在运行的程序

考虑使用任务调度程序,如Windows任务调度程序或Cron,在一天中的计划时间启动和停止进程

我建议使用Windows任务调度程序和计时器进行此操作。但是,如果您想要指定代码的答案,您可以使用下面的代码。

Thread timerThread = new Thread(()=>
           {
               while(true)
               {
                   if(DateTime.Now.Hour >= 6 && DateTime.Now.Hour <= 17)
                   {
                       sms.SendSms();
                       Thread.Sleep(300000);
                   }
                   else
                   {
                       Thread.Sleep(3600000);
                   }
               }});
        timerThread.Priority = ThreadPriority.Normal;
        timerThread.IsBackground = true;
        timerThread.Start();