windows服務中的定時器timer使用
阿新 • • 發佈:2019-01-11
Windows服務中Timer元件Tick無法觸發 具體原因,微軟自稱是Framework的bug:
但是無論是windows窗體中timer還是元件中的timer都是繼承自System.Windows.Form.Timer,並不是我們需要的System.Timers ,繼承自System.Timers 的timer只有手動建立
public Service1() { InitializeComponent(); System.Timers.Timer t = new System.Timers.Timer(200);//例項化Timer類,設定間隔時間為10000毫秒; t.Elapsed += new System.Timers.ElapsedEventHandler(theout);//到達時間的時候執行事件; t.AutoReset = true;//設定是執行一次(false)還是一直執行(true); t.Enabled = true;//是否執行System.Timers.Timer.Elapsed事件; } public void theout(object source, System.Timers.ElapsedEventArgs e) { SqlConnection conn = new SqlConnection("Server=.;UID=eaglesoft;PWD=password;DataBase=exchange"); SqlCommand comm = new SqlCommand("INSERT INTO op_album(album_name,album_score,album_picscr) VALUES('1','2','3')", conn); conn.Open(); comm.ExecuteNonQuery(); conn.Close(); }
這樣就可以觸發Elapsed事件了,註冊服務一切正常,能觸發該事件