日期:2014-05-17 浏览次数:21002 次
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Security.Cryptography; namespace TestConsoleApplication { class Program { /// <summary> /// 声明一个线程实例 /// </summary> public static Thread mythread; #region 计算剩余时间 private static int CompareDate(string synchroDateStr) { long nowDT = DateTime.Now.Ticks/10000; DateTime synchroDate = Convert.ToDateTime(synchroDateStr); long synchroDT = synchroDate.Ticks/10000; Console.WriteLine("当前时间的毫秒数:" + nowDT); Console.WriteLine("执行同步的时间的毫秒数:" + synchroDT); int sleepDT = 0; if (synchroDT > nowDT) { sleepDT = Convert.ToInt32(synchroDT - nowDT); } Console.WriteLine("剩余时间的秒数:" + sleepDT); Console.WriteLine("剩余时间的毫秒数:" + sleepDT / 1000); Console.WriteLine("剩余时间的分钟数:" + sleepDT / 1000 / 60); Console.WriteLine("剩余时间的小时数:" + sleepDT / 1000/60/60); Console.WriteLine("执行同步的时间:" + synchroDateStr); return sleepDT; } #endregion 计算剩余时间 #region 主程序启动 //开始运行 public static void Main(string[] args) { mythread = new Thread(new ThreadStart(work)); mythread.Start(); } public static void work() { while (true) { //string synchroDateStr = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd 00:00:00"); string synchroDateStr = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd 00:00:00"); int sleepMilliseconds = CompareDate(synchroDateStr); Thread.Sleep(sleepMilliseconds); dowork();//方法放到后边,可以避免在系统启动的时候立即执行 } } public static void dowork() { Console.WriteLine("123"); } #endregion } }