Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1

Запись данных в Label из другого потока

24.11.2016, 18:40. Показов 1729. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем!

Задачка простая создать поток который проводит опрос и записывает данные label. Реализовать можно через таймер но не хочу. Если пользоваться классическими
C++
1
CreateThread
то долезть до элементов формы можно попробовать, как мне кажется, через делегат
C++
1
public delegate void MyDel(int i);
и соответствующий код типа:
C++
1
2
3
4
5
6
ClProc c_b;
MyDel ^md;
md=gcnew MyDel(this, &frmMain::prbar);  
GCHandle gch = GCHandle::Alloc(md);
IntPtr i_p = Marshal::GetFunctionPointerForDelegate(md);
c_b = static_cast<ClProc>(i_p.ToPointer());
кусок кода взял со своего старого проекта.... Но такой подход тоже не радует, хотелось найти что-нибудь простое и изящное. А есть более простой способ создать поток и обращаться к элементам управления из него?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.11.2016, 18:40
Ответы с готовыми решениями:

Создать label на форме из другого потока и работать с ним
Обьясните пожалуйсто как работать с invoke необходимо, создать label на форме из другого потока, или получить доступ к label из оного. ...

Как можно присвоить значение label.text из другого потока?
Есть label созданный на форме, его значение label.text нужно изменить из другого потока. Как это сделать?

Добавить запись в таблицу из другого потока
// поток private System.Threading.Thread work; // событие вызываем из соседнего потока public event...

2
Нарушитель
 Аватар для bodya_men
54 / 55 / 8
Регистрация: 01.07.2014
Сообщений: 1,021
04.12.2016, 11:28
https://msdn.microsoft.com/ru-... .110).aspx
Посмотрите здесь.
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9674 / 4826 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
05.12.2016, 20:28
mustimur, в .NET новые потоки создаются с помощью класса System.Threading.Thread. Однако в данном случае это вам не поможет - Windows Forms работает в режиме STA и к элементам формы можно обращаться только из одного потока (если не использовать специальные средства).

Самый простой вариант решения - метод Invoke() у формы.
Также для вашей задачи может подойти класс BackgroundWorker.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.12.2016, 20:28
Помогаю со студенческими работами здесь

Получение данных структуры из другого потока
Как передать/получить данные структуры в другом потоке (клиентского подключения к серверу) не передавая структуру, а используя указатель...

Передача данных в textbox из другого потока
Здравствуйте. Решил я уйти от приложений в консоли и перейти на WF, и уже жалею. Вообщем проблема такова, на форме есть textbox1 мне...

Получение потоком GUI данных из другого потока
Здравствуйте. Возникла проблема такого рода: Есть главный поток GUI, в нем при нажатии кнопки создается сторонний поток, в котором...

Привязка данных. Замена ItemsSource из другого потока
Привет. Проблема на самом деле какая то странная. У меня есть ObservableCollection. Я ее заполняю после этого делаю this.DataContext =...

[mvvm] Привязка данных которые изменяются из другого потока
здравствуйте, есть проблема следующего рода: есть поток(Task) который получает данные из сети и меняет viewmodel, но форма отказывается...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru