Потоки и параллелизм. Ошибка System.InvalidOperationException - C#
Формулировка задачи:
Есть пример из книги Троелсена 5-го издания , (19 глава),
в котором описывается работа с классом Task. в частности с методом ForEach.
В теле метода мы из одной папки в другую копируем изображения (переворачивая их на 180).
а также записываем в заголовок формы какой поток сейчас работает.
и при запуске на эту строку выбивает исключение :
"Исключение типа "System.InvalidOperationException" возникло в System.Windows.Forms.dll, но не было обработано в коде пользователя
Дополнительные сведения: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления 'MainForm' не из того потока, в котором он был создан."
если закоментить строку обращение к форме то все работает.
раньше при работе с потоками тоже такое было . когда из другого потока пытался обратится к элементу формы
Подскажите в чем проблема
this.Text = string.Format("Processing {0} on thread {1}", filename, Thread.CurrentThread.ManagedThreadId);
Решение задачи: «Потоки и параллелизм. Ошибка System.InvalidOperationException»
textual
Листинг программы
this.Invoke(new Action(() => this.Text = string.Format("{0}", Thread.CurrentThread.ManagedThreadId)));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д