我正在创建一个程序,每隔“ 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)