On peut faire plus général avec les méthodes anonymes et le délégué MethodInvoker ou Action (version non générique, FW 3.5 mini), la signature étant identique.
Quelque chose comme
1 2 3 4 5 6 7 8 9 10 11
| private void InvokeMethod(MethodInvoker invoker)
{
if (this.InvokeRequired)
{
this.Invoke(invoker);
}
else
{
invoker();
}
} |
Et à l'appel
InvokeMethod(delegate { this.textBox.Text = monTexte; });
Ou encore
InvokeMethod(delegate { this.button.Visible = false; });
Comme ça une seule méthode gère l'invoke, quel que soit le code à exécuter sur le thread principal.
Partager