有時候我們需要每天 定時的 自動 去執行某段程序,那么這個功能如何實現呢? 經過百度,定時器就可以實現,總結如下:
我用控制臺寫了一個程序,用來在指定時間內 打印 “我執行了”
上面就是程序的運行結構,由于我設置了循環,所以輸出了多次
代碼如下:


using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleApplication1 {class Program{public static int n = 0;public static string time = "14:41:0";//設置在每天下午2點26分執行static void Main(string[] args){//指定時間執行一段程序System.Timers.Timer timer = new System.Timers.Timer();timer.Enabled = true;timer.Interval = 1000;//執行間隔時間,單位為毫秒 這里我設置的每隔1秒執行一次程序 timer.Start(); timer.Elapsed += new System.Timers.ElapsedEventHandler(Timer1_Elapsed);Console.ReadKey();}private static void Timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e){DateTime dt = DateTime.Now;string currentTime = string.Format("{0}:{1}:{2}", dt.Hour.ToString(), dt.Minute.ToString(), dt.Second.ToString());Console.WriteLine(currentTime);if (currentTime==time)//如果到了我們指定的時間,則提示“我執行了” {for (int i = 0; i < 1000; i++){Console.WriteLine("我執行了!"); } } }} }
參考: http://www.cnblogs.com/freeliver54/archive/2007/03/06/665625.html
集合MVC使用參考:http://www.cnblogs.com/sdadx/p/6102017.html
我們想要的效果就這樣簡單的搞定了~~?
由于Timer只有在瀏覽網頁的時候他才會執行,但我們想要的是將網站部署到IIS后,無論瀏覽不瀏覽或者IIS重啟,他都會自動執行。
這時我們可以通過Quartz.Net實現,并利用Topshelf創建windows服務達到永久運行的效果:
參考博文:
1.http://www.cnblogs.com/jys509/p/4628926.html?Quartz.NET 入門
2.http://www.cnblogs.com/jys509/p/4614975.html?使用Topshelf創建Windows服務
3.http://blog.csdn.net/yansong_8686/article/details/46991189?Quartz 定時任務設置某個時間區間每隔一定時間觸發的cron表達式時間配置
參考上面,自己寫了個Demo:網盤鏈接:http://pan.baidu.com/s/1pLU6dq7 密碼:bo8p ?or?https://github.com/shuai7boy/TestQuartz
一般Quartz都單獨作為一個項目對其它項目進行調用。
需要注意的問題:
1.將上面博文中提到的 配置文件 一定要改為始終配置
2.直接 搬磚 的話,注意改下Demo的命名空間和 配置文件路徑
3.安裝window服務時,如果出現以下錯誤,那么 首先 看看CMD是否以管理員運行, 如果是還不行,那就關閉殺毒軟件應該就可以了
?