Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Présentation

  • : Romagny13 - Du .NET,du pur .NET
  • Romagny13 - Du .NET,du pur .NET
  • : Cycle de progression Faire (quelque chose qui marche) -> comprendre ce que l’on fait/comment cela marche -> pousser plus loin les notions
  • Contact

Recherche

Articles Récents

16 août 2007 4 16 /08 /août /2007 11:07
System.Threading.Timer –
un timer pour la gestion des expirations d’un cache
 
Cette classe a pour objectif de permettre la gestion des expirations des éléments d’un cache(ces expirations peuvent etre de plusieurs types : absolues,relatives,notifications)
Très simple on utilise un timer,qui sera appelé périodiquement pour vérifier chaque cacheItem du cache n’a pas pas expiré
Logiquement une instance de cette classe devrait etre créée et le timer lancé en même temps que l’on instancie le cache manager
 public class PollTimer :IDisposable
    {
        private System.Threading.Timer timer;
 
        public void StartPolling(TimerCallback callbackMethod, int period)
        {
            if (callbackMethod == null)
                throw new ArgumentNullException("callbackMethod");
            if (period <= 0)
                throw new Exception("period");
 
            timer = new System.Threading.Timer(callbackMethod, null, 1000, period);
        }
 
         public void StopPolling()
        {
            if (timer == null)
                throw new InvalidOperationException("");
 
            Dispose();
        }
 
        #region IDisposable Membres
 
        public void Dispose()
        {
            timer.Dispose();
            timer = null;
        }
 
        #endregion
    }
 
Exemple(code de la form) :
Le timer sera appelé toutes les secondes et affichera un message
 
        PollTimer pollTimer = new PollTimer();
 
        private void button1_Click(object sender, EventArgs e)
        {
            pollTimer.StartPolling(Message, 1000);
        }
 
 
        public void Message(object obj)
        {
            MessageBox.Show("now");
        }
 
 

Partager cet article

Repost 0
Published by Romagny13 - dans ADO.NET
commenter cet article

commentaires