Ecrire dans un textBox depuis un autre thread / appel Thread-safe dans un Windows Form

Lorsqu’on appelle une méthode qui écrit dans un textBox (par exemple) sur une Form, et qu’on l’appelle depuis un autre thread, une autre classe, une erreur est retournée. Ce n’est pas « thread-safe« .

Pour contrer cela, il faut utiliser invoke. Par exemple si dans la class de ma Form, j’ai une méthode qui écrit dans une textBox :

public void log(string value)
    {
    if (InvokeRequired)
        {
            this.Invoke(new Action<string>(log), new object[] { value });
            return;
        }
        Console.WriteLine("LOG : " + value);
        textBox_log.Text += value + "\r\n";
    }

 

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *