Потоки и параллелизм. Ошибка 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)));

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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