using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Runtime.InteropServices; namespace AutoCreateTaskApp { class Program { [DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); public const int SW_SHOWMINIMIZED = 2; public const int SW_HIDE=0; static IntPtr winHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle; static void Main(string[] args) { //使控制台在后台执行。 ShowWindow(winHandle, SW_HIDE); // Normally, the timer is declared at the class level, // so that it stays in scope as long as it is needed. // If the timer is declared in a long-running method, // KeepAlive must be used to prevent the JIT compiler // from allowing aggressive garbage collection to occur // before the method ends. You can experiment with this // by commenting out the class-level declaration and // uncommenting the declaration below; then uncomment // the GC.KeepAlive(aTimer) at the end of the method. //timer = new System.Timers.Timer(); System.Timers.Timer timer = new System.Timers.Timer(1000); timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed); //每五分钟执行一次。 //timer.Interval = 300000; timer.Interval = 2000; timer.Enabled = true; // If the timer is declared in a long-running method, use // KeepAlive to prevent garbage collection from occurring // before the method ends. GC.KeepAlive(timer); //指定无限长等待时间的常数 Thread.Sleep(System.Threading.Timeout.Infinite); } static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { Console.WriteLine(DateTime.Now.ToString()); Helper.AutoCreateTask(); } } } --------------------- 作者:arvinstudy 来源:CSDN 原文:https://blog.csdn.net/ArvinStudy/article/details/7374888 版权声明:本文为博主原创文章,转载请附上博文链接!