Ошибка операции с несколькими потоками, когда я получаю строку из другой задачи [дубликата]
На этот вопрос уже есть ответ здесь:
Недопустимая операция между потоками: доступ к элементу управления из потока, отличного от потока, в котором он был создан 20 ответовВ своем коде я разрабатываю графический интерфейс, который справляется с одной задачей. Из класса Form1 я отправляю параметры методу другому классу при другой задаче и получаю параметры из задачи.
В классе Form1 у меня естьmyEvt_valueChnaged(string s)
метод, который получает строкуs
в качестве аргумента - строка, содержащая текст текстового поля, которое отправляется из события в классе менеджера - вызывается из другой задачи.
Полученной строкой я обновляю текстовое поле в графическом интерфейсе, как написано здесь:
private void myEvt_valueChnaged(string s)
{
textBox1.Text = s;
}
с этим кодом я получаю ошибку:
invalidoperationexception was unhandled by user code - Cross-thread operation not valid: Control 'textBox1' accessed from a thread other than the thread it was created on.
Я попытался добавить строку в методе:var y =s; and then textBox1.Text=y;
но это не решило это.
Как я могу решить эту проблему?