Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
10 / 10 / 0
Регистрация: 05.12.2011
Сообщений: 182

Обращение к элементам формы с другого потока

09.05.2012, 19:15. Показов 3617. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть форма, есть потоки, которые должны получить доступ к ProgressBar'у, расположенному на форме. Делал так:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
module ***
    Private Delegate Sub DataOut(ByVal arg As Integer)
    Private OutData As DataOut = AddressOf OutFromThrs
 
...
 
    sub RanInOtherThrd
        frmMain.prgBar.Invoke(OutData, Count)
    end sub
 
...
 
    Private Sub OutFromThrs(ByVal count As Integer)
        frmMain.prgBar.Increment(count)
    End Sub
end module
На что мне вылезает System.InvalidOperationException (Невозможно вызвать Invoke или BeginInvoke для элемента управления до завершения создания дескриптора окна.). В чем проблема и как юороться? Заранее спасибо.

Добавлено через 25 минут
П.С. event'ы не вариант

Добавлено через 12 секунд
П.С. event'ы не вариант
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.05.2012, 19:15
Ответы с готовыми решениями:

Обращение к элементам формы из другого потока
Извиняйте за очередную тему. Тут на форуме я уже их много прочитал, но все равно не могу понять эти делегаты и инвок. На форуме есть...

Обращение к элементам формы из другого потока
Короче говоря многопоточность это моя слабость. Сколько статей перечитал уже, один хрен не пойму как они синхронизируются и как...

Обращение к элементам управления из другого потока. Проблемы с этим.
Не понимаю, что тут не так? Я пытаюсь из другого потока установить свойсво Maximum для ProgressBar. void...

4
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
09.05.2012, 22:43
Добавь это в форму и обращайся к елементам как обычно

VB.NET
1
 Me.CheckForIllegalCrossThreadCalls = False
2
 Аватар для eJ_Studio
169 / 149 / 14
Регистрация: 13.07.2011
Сообщений: 477
13.05.2012, 15:36
edward_freedom, могли бы Вы объяснить что это за зверь такой? это что бы не было проблем при работе с потоками?
0
0 / 0 / 0
Регистрация: 16.10.2014
Сообщений: 124
19.09.2015, 03:49
Цитата Сообщение от edward_freedom Посмотреть сообщение
Добавь это в форму и обращайся к елементам как обычно
Код vb.net
Me.CheckForIllegalCrossThreadCalls = False
вылетала ошибка
удалил и вставил на тоже место строчку, теперь прост не работает. (данные из datagridview нечитаются)
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
19.09.2015, 05:32
Hoxnap, код в студию. Не понять что не так

Добавлено через 1 минуту
eJ_Studio, это что-то вроде проверки на обращения других потоков в основной поток вашей форму, на которой прогресс бар. Отклбчая эту проверку, поток напрямую без костылей обращается к форме, как будто обращение происходит из основного потока. Вроде так.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.09.2015, 05:32
Помогаю со студенческими работами здесь

Обращение к элементам формы из потока (зависон)
Вот такой код Task.Factory.StartNew(cfg => { string log = ""; task2 = (cfg as...

Обращение к элементам формы из завершающегося потока
Есть такая задача. В программу приходят данные по интерфейсу UART. За чтение отвечает дополнительно создающийся поток, в котором находится...

Доступ к элементам формы из другого потока
В общем, у меня есть много разных функций, которые вызывают другие функции, в которых происходят разные операции типа копирования файлов,...

Доступ к элементам формы из другого потока
Есть функция, которая запускается отдельным потоком: static unsigned __clrcall ThreadFunc1(void* pArguments) { Form1 ^...

Доступ к элементам формы из другого потока
Хочу сделать в фоновом потоке добавление UserControl в StackPanel. Старт потока: Thread t = new Thread(Add); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru