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

  • Fullscreen

    Fullscreen

    23 Mart 2006
  • Moto Journal

    Moto Journal

    28 Mayıs 2007
  • Unbox Therapy

    Unbox Therap

    21 Aralık 2010