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

LES COMMENTAIRES (1)
posté le 20 janvier à 13:55
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