Как в C# избежать исключения InvalidOperationException?
Добрый день! Столкнулся с такой проблемой. В основном потоке открываю дочерний в котором идет работа с объектом формы(progressBar). Выскакивает исключение:
Дополнительные сведения: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления 'pB1' не из того потока, в котором он был создан. Как это можно избежать? Переносить работу с потоком из формы не вариант. Заранее спасибо!
С элементами формы работа возможна только из потока в котором они созданы.
Хотите обновлять progressBar, передавайте значение из своего вспомогательного потока в основной и он уже обновит progressBar
Ну чтобы и мне не создавать тему на счет такого же, задам сразу тут.
Есть поток и в нем передача данных в главный поток, через Invoke.
Но когда форма закрывается и поток еще работает вылетает исключение такого же типа, но с текстом:
Необработанное исключение типа "System.InvalidOperationException" в System.Windows.Forms.dll
Дополнительные сведения: Невозможно вызвать Invoke или BeginInvoke для элемента управления до завершения создания дескриптора окна.
На событии закрытия формы (FormClosing) стоит thread.Abort(); thread.Join();
Что я не так делаю?о_О