[C#] Méthode thread-safe avec arguments pour context winform

Publié le 06 octobre 2008 par Jeremy.jeanson

Voici un exemple simple d'intégration d'une méthode thread-safe dans un context winform. Afin d'utiliser la méthode Invoke et la propriété Invokerequered, la classe hérite de System.Windows.Froms.Control (ne pas chercher en ASP, ça n'existe pas).

J'ai construis cette classe afin de fournir un exemple d'un méthode thread-safe comprenant des argument et une valeur de retour.

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public class Class1:Control
    {
        private delegate Boolean DoWorkDelegate(String arg1, String arg2);
        public Boolean DoWork(String arg1, String arg2)
        {
            if (this.InvokeRequired)
            {
                return Convert.ToBoolean(
                    this.Invoke(new DoWorkDelegate(DoWork), new object[] { arg1, arg2 }));
            }
            else
            {
                // Dowork
                return true;
            }
        }
    }
}