1. 程式人生 > >windows服務中的定時器timer使用

windows服務中的定時器timer使用

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事件了,註冊服務一切正常,能觸發該事件