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

  • Chriselle Lim

    Chriselle Li

    26 Ocak 2008
  • CMTelly

    CMTelly

    2 Mayıs 2007
  • TomKNJ

    TomKNJ

    26 ŞUBAT 2007