Voici un petit code qui explique simplement l'utilisation du SynchronizationContext pour obtenir un code Thread-safe.
Imports System Imports System.Threading Namespace WindowsFormsApplication1 ''' <summary> ''' Classe métier qui a besoin d'avoir des appels avec SynchronizationContext ''' </summary> Public Class Class1 Private _context As SynchronizationContext ''' <summary> ''' Constructeur ''' </summary> Public Sub New() ' Mémorisation du context _context = SynchronizationContext.Current End Sub ''' <summary> ''' Lancement de la méthode hors context ''' </summary> Public Sub DoWork() ' Test si on a un context (juste par prudence) If _context IsNot Nothing Then ' Appel de la méthode via le context _context.Post(Work, Nothing) End If End Sub ''' <summary> ''' Méthode que l'on souhaite proteger via SynchronizationContext ''' </summary> ''' <param name="data"></param> Private Sub Work(data As Object) ' Faire le job End Sub End Class End Namespace-left: 95px; background: url(http://www.blogblog.com/tictac/bottom_sash_left.gif) no-repeat top left; } /** Page structure tweaks for layout editor wireframe */ body#layout #outer
LES COMMENTAIRES (2)