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
        }
    }
}

Vous pourriez être intéressé par :

Retour à La Une de Logo Paperblog

Ces articles peuvent vous intéresser :

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

Ajouter un commentaire

A propos de l’auteur


Jeremy.jeanson 1535 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 l'auteur n'a pas encore renseigné son compte

Dossier Paperblog