Недопустимая операция в нескольких потоках - C# (247713)

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

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

1. Есть класс

MyClass

в котором метод

MyMethod

каждую секунду увеличевает переменную на

a

1 и

TestEvent

- событие которое срабатывает через каждую секунду и передаеет в своем аргументе значение переменной

а

2. Создаю экземпляр класса и вызываю его метод в новом потоке, также создаю его событие которому назначаю мутод в котором пишу progressBar1.Value = progress; и у меня выбивает ошибка

я понял что сообщенный метод с TestEvent - пренадлежит вторичном потоку (хотя вроде бы находится в первичном на первый взгляд). Я со вторичного потока обращаюсь к элементу progressBar1 который относится к первичному. Вот и ошибка. А Как мне быть? Помогите пожалуйста.

Как сделать что бы прогрессБар получал значения с вторичного потока и отображал его. Его как то надо добавить в контекст Вторичного потока?

Решение задачи: «Недопустимая операция в нескольких потоках»

textual
Листинг программы
private void TestClass_TestEvent(int progress)
        {
            progressBar1.BeginInvoke(() => progressBar1.Value = progress);
             
        }

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


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

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

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