J'ai besoin de deux méthodes à exécuter en parallèle. Work()
modifie les données à l'intérieur d'une boucle infinie. Represent
place également les données modifiées dans le TextBox
à l'intérieur de la boucle infinie.Opération invalide dans plusieurs threads
Log log = Log.GetInstance; //singleton
private void Work()
{
while (true) { //changing log }
}
private async void Represent()
{
await Task.Run(() =>
{
while (true)
{
String str = String.Empty;
//generating str from log
textBox.Text = str;
}
});
}
private async void button_Click(object sender, EventArgs e)
{
await Task.Run(() => Work());
}
public MainForm()
{
Represent();
}
Le problème est que textBox.Text = str;
génère une erreur "invalid operation in multiple threads: attempt to access the control "textBox" from a thread in which it was created"
. Comment résoudre ce problème? Merci d'avance. P.S. La méthode suggérée here pour .NET 4.5 ne fonctionne pas à cause de la boucle infinie.
Espérons que ce message d'erreur n'est pas littéralement ce qu'il dit – harold