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)