Magazine Internet

[C#] Thread-Safe facile avec SynchronizationContext

Publié le 03 octobre 2008 par Jeremy.jeanson

Voici un petit code qui explique simplement l'utilisation du SynchronizationContext pour obtenir un code Thread-safe.

using System;
using System.Threading;

namespace WindowsFormsApplication1
{
    /// <summary>
    /// Classe métier qui a besoin d'avoir des appels avec SynchronizationContext
    /// </summary>
    public class Class1
    {
        private SynchronizationContext _context;

        /// <summary>
        /// Constructeur
        /// </summary>
        public Class1()
        {
            // Mémorisation du context
            _context = SynchronizationContext.Current;
        }

        /// <summary>
        /// Lancement de la méthode hors context
        /// </summary>
        public void DoWork()
        {
            // Test si on a un context (juste par prudence)
            if (_context != null)
            {
                // Appel de la méthode via le context
                _context.Post(Work, null);
            }
        }

        /// <summary>
        /// Méthode que l'on souhaite proteger via SynchronizationContext
        /// </summary>
        /// <param name="data"></param>
        private void Work(Object data)
        {
            // Faire le job
        }
    }
}

Retour à La Une de Logo Paperblog

LES COMMENTAIRES (1)

Par coloniedevacances
posté le 20 janvier à 13:55
Signaler un abus

Salut, J'arrive tous juste sur ce forum qui m'a l'air interressant. habitué des forum et gros contributeur, je suis interressé par votre concept. A bientot sur le forum

A propos de l’auteur


Jeremy.jeanson 1573 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossier Paperblog