Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Timer trong Service Windows

    Mình đang làm một Service chạy ngầm trong Windows. Có sử dụng Timer để đếm thời gian, nhưng không hiểu sao Start Service đó rồi nhưng nó không nhận sự kiện Tick() của Timer cả. Đây là code của sự kiện Tick:

    Mã:
    private void timer1_Tick(object sender, EventArgs e)
            {
                if (DateTime.Now.ToShortTimeString().Remove(5).Trim() == "11:50")
                {
                    conn.Open();
    
                    cmdDel = new SqlCommand("DELETE dmNgayLamViec", conn);
                    cmdDel.ExecuteNonQuery();
                    cmdDel.Dispose();
    
                    cmd = new SqlCommand("INSERT dmNgayLamViec VALUES(@IDWorkingDay,@Day)", conn);
                    cmd.Parameters.AddWithValue("@IDWorkingDay", DateTime.Now.AddDays(1).ToShortDateString());
                    cmd.Parameters.AddWithValue("@Day", DateTime.Now.AddDays(1).ToShortDateString());
                    cmd.ExecuteNonQuery();
    
                    cmd.Dispose();
                    conn.Close();
    
                    this.Stop();
                }
            }
    Sự kiện OnStart()
    Mã:
    protected override void OnStart(string[] args)
            {
                timer1.Enabled = true;
                timer1.Interval = 1000;
                if (DateTime.Now.ToShortTimeString().Remove(5).Trim() == "11:50")
                {
                    conn.Open();
    
                    cmdDel = new SqlCommand("DELETE dmNgayLamViec", conn);
                    cmdDel.ExecuteNonQuery();
                    cmdDel.Dispose();
    
                    cmd = new SqlCommand("INSERT dmNgayLamViec VALUES(@IDWorkingDay,@Day)", conn);
                    cmd.Parameters.AddWithValue("@IDWorkingDay", DateTime.Now.AddDays(1).ToShortDateString());
                    cmd.Parameters.AddWithValue("@Day", DateTime.Now.AddDays(1).ToShortDateString());
                    cmd.ExecuteNonQuery();
    
                    cmd.Dispose();
                    conn.Close();
    
                    this.Stop();
                }
            }
    Cám ơn các bạn.

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    bạn có thể sử dụng 1 lib khác hiệu quả hơn timer của win.
    link : http://www.quartz-scheduler.net/

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •