SORU
2 ŞUBAT 2009, PAZARTESİ


Nasıl bir zamanlama olabilir ben C# Windows günlük görev gerçekleştirmek için Hizmet?

Bir hizmet C yazdım# (.NET 1.1) ve gece yarısı bazı temizleme işlemleri her gece gerçekleştirmek istiyorum. Tüm kod hizmet içinde tutmak için var, ne bunu yapmanın en kolay yolu? Thread.Sleep() ve bu süre içinde yuvarlanan kontrol kullanımı?

CEVAP
2 ŞUBAT 2009, PAZARTESİ


İplik kullanmazdım.() Uyku. Ya da bir zamanlanmış görev (başkaları söyledi) ya da ayarlanmış bir zamanlayıcı içinde hizmet, yangınlar periyodik olarak (her 10 dakika için örnek) ve onay tarihi değişti bu yana geçen çalıştırın:

private Timer _timer;
private DateTime _lastRun = DateTime.Now.AddDays(-1);

protected override void OnStart(string[] args)
{
    _timer = new Timer(10 * 60 * 1000); // every 10 minutes
    _timer.Elapsed  = new System.Timers.ElapsedEventHandler(timer_Elapsed);
    _timer.Start();
    //...
}


private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
    // ignore the time, just compare the date
    if (_lastRun.Date < DateTime.Now.Date)
    {
        // stop the timer while we are running the cleanup task
        _timer.Stop();
        //
        // do cleanup stuff
        //
        _lastRun = DateTime.Now;
        _timer.Start();
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • edwin maldonado

    edwin maldon

    28 Mart 2009
  • RFS Dan

    RFS Dan

    22 Temmuz 2014
  • tatermoog

    tatermoog

    2 AĞUSTOS 2006