Magazine Internet

[C#] Utiliser Invoke et InvokeRequired sans hériter de Control

Publié le 07 octobre 2008 par Jeremy.jeanson

Finalement j'ai trouvé une solution encore plus propre pour utiliser des méthodes avec arguments et un retour dan un contexte winform, enfin je crois.
L'objectif était de ne pas hériter de Control, j'ai donc instancier un Control dans la classe qui doit invoquer des méthodes de manière thread-safe.

public class Class1
{
    private Control _control;
    private delegate Boolean DoworkDelegate(String arg1, String arg2); 

    public Class1()
    {
        this._control = new Control();
    } 

        private Boolean DoworkDelegate(String arg1, String arg2)
        {
            if (this._control.InvokeRequired)
            {
                return Convert.ToBoolean(this._control.Invoke(new DoworkDelegate(this.DoWork),new objetct[]{arg1,arg2}));
            }
            else
            {
                // Fais ton job ici :)
        		return true;
            }
        } 
} 

Propre, simple et économique en ressources :)


Retour à La Une de Logo Paperblog

A propos de l’auteur


Jeremy.jeanson 1573 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte