在给定时间内执行任务

时间:2018-10-06 17:20:00

标签: c#

我正在创建一个程序,每隔“ x”分钟执行某些任务。

例如:

Task A: every 10 minutes (this task takes 5 minutes to complete)
Task B: every 10 minutes (this task takes 5 minutes to complete)
Task C: every 1 hour (this task takes 30 mins to complete)

我在让程序等待每个任务时遇到了一些麻烦,我正在使用Sleep()来等待,但是,时间不够准确。

我正在单独的线程上运行该进程。

public void Job() {
 while (true) {
  MyClass bot = null;
  try {
   bot = new MyClass(Accounts.FirstOrDefault());
   bot.TwoCaptchaApi = "...";
   bot.GridView = gridLogs;

   bot.Login();

   if (Task1)
    bot.Task1();

   if (Task2)
    bot.Task2();

   if (Task3)
    bot.Task();

   bot.Quit();

   bot.Log("Aguardando....");
  } catch (ThreadAbortException) {
   bot ? .Quit();
  } catch (Exception) {
   bot ? .Quit();
   Job();
  }
  Thread.Sleep(Convert.ToInt32(TimeSpan.FromMinutes(30).TotalMilliseconds));
  bot.Log("Tempo de espera terminado!");
 }
}

这意味着我使用的无法正常运行...我不知道使用DateTime()是否是最好的方法...万一初始化一个全局变量并存储上一次活动的日期和时间每个任务

DateTime LastActivity = DateTime.Now;
if (LastActivity.AddHours (1)> DateTime.Now)

0 个答案:

没有答案