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

  • Artorius FullPower

    Artorius Ful

    29 Temmuz 2007
  • hockeywebcasts

    hockeywebcas

    31 EKİM 2012
  • TheDigiCraft

    TheDigiCraft

    25 NİSAN 2011