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

  • National Geographic

    National Geo

    7 Mayıs 2006
  • Crossover

    Crossover

    18 HAZİRAN 2007
  • YAN TV

    YAN TV

    20 EKİM 2011