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 n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.