Потоки и параллелизм. Ошибка System.InvalidOperationException - C#

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Потоки и параллелизм. Ошибка System.InvalidOperationException»

textual
Листинг программы
this.Invoke(new Action(() => this.Text = string.Format("{0}",
                            Thread.CurrentThread.ManagedThreadId)));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5
Похожие ответы