/// Classe utiliséé pour passer les arguements et retourner une valeur public class ClassData { public Boolean Retour{get;set;} public String Argument1{get;set;} public String Argument2{get;set;} } 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 Boolean DoWork() { // Test si on a un context (juste par prudence) if (_context != null) { ClassData data = new ClassData(); // Appel de la méthode via le context _context.Post(Work, data); return data.Retour; } } /// <summary> /// Méthode que l'on souhaite proteger via SynchronizationContext /// </summary> /// <param name="data"></param> private void Work(Object obj) { ClassData data = obj as ClassData; // Faire le job data.Retour = true; } }
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.