|
56 / 39 / 2
Регистрация: 18.09.2010
Сообщений: 39
|
|||||||||||
VC++ 6.0 MFC: потоки и сообщения25.09.2010, 13:47. Показов 5082. Ответов 4
Метки нет (Все метки)
плиз киньте пару ссылок на описание с примерами работы потоков
а главное как между ними передавать данные - я читал что через глобальные переменные до конца не разобрался как реагировать быстро на изменения той или инной переменной ну и 2е это сообщения которые можно посылать как главному потоку так и поражденным - как их инициализировать направлять и обробатывать понятия не имею вообще сам поток где создавать лучше в классе или в главном файле ну типо глобальной функции и как получить доступ из класса к глобальным функциям потока при создании потока в общем вже неделю сижу а в голове пока каша, поток научился создавать в классе файл заголовка класса:
так и не понял что именно делает код в заголовке класса "static UINT __cdecl " знаю что конвертирует, и без него ошибки компиляции, а почему непонятно. в общем может у кого сохранились ссылки на описание кухни потоков и передачи информации между потоками по средствам сообщений (ибо мне нужно что бы поток сам отреагировал при приеме сообщения ну по мере поступления) может статейки може готовые примеры исходники да работаю в MFC - диалоговое окно, 2е кнопки и экранчег на который выводятся подсказки - что происходит в программе, вот я и хочу к примеру по нажатию на кнопку запустить поток в нем включить таймер, и выводить в объект лист бокс главного диалогового окна сообщения по срабатыванию тайера внутри поражденного потока как я понял напрямую я немогу получить доступ к элементам главного потока к коем видать и относиться объект listBox расположенный на диалоговом окне а мне нужно в поражденном потоке отправить сообщение главному потоку а уже в главном обработать сообщение принять из сообщения данные и уже в главном потоке добавить в содержимое list Box новую строку или еще че нить мне кажеться что на таком примере я смогу лучше разобраться в потоках и передачи инфорации между ними а вообще цель стоит, создание программ клиента и сервера для передачи данных между компами а выходит что пока данные не считаны прога виснит или пока нет подключения в общем виснит, а что бы не вис надо бы засунуть подключение и передачу данных в поток и упровлять им тогда внешне программа будет реагировать на кнопки что бы я смог отменить подключение или сделать реконект в общем мне нужна литература/статейки/примеры что бы я наконец смог разобраться в потоках и как ими упровлять/ передавать информацию и обробатвать за ранее большое спасибо за то что уделили мне внимание
0
|
|||||||||||
| 25.09.2010, 13:47 | |
|
Ответы с готовыми решениями:
4
Потоки в MFC MFC чат, потоки MFC, потоки, не видит функции |
|
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
|
||
| 26.09.2010, 10:54 | ||
|
MSDN посмотри: Реализация многопоточности на языке C++ с помощью классов MFC
примеры там есть. смысл в том, что функция потока должна находится в одном и том-же месте в памяти, а не перемещаться куда ни попадя, по мере необходимости, как это происходит с динамическими членами классов. вот и объявляется она как static. а UINT __cdecl - это принятое соглашение о формате вызова функции; оно означает, что функция вернет переменную типа UINT, и что эта переменная расположена в стеке сразу после адреса, и т.д. можешь в том-же msdn набрать поиск на "__cdecl" и почитать подробнее.
1
|
||
|
56 / 39 / 2
Регистрация: 18.09.2010
Сообщений: 39
|
|
| 26.09.2010, 17:08 [ТС] | |
капец описание вокруг да около и всеравно в голове одна кашапожалуйста выложите исходник для Visual C++ 6.0 (MFC) какой нибудь простой пример 1) вводим в поле Edit любое число 2) нажимаем на кнопку 3) запускаеться поток, в поражденный поток передаються данные - наше введенное число 4) созданный поток возводит число в квадрат и отправляет квадарат этого числа в главный поток. 5) главный поток как только принял число сразу же вывел сообщение в виде MessageBox(""); пользователю
0
|
|
|
9 / 9 / 0
Регистрация: 14.08.2010
Сообщений: 148
|
|
| 26.09.2010, 20:53 | |
|
А ты на Win API пробывал там с потоками тоже можно работать.
Скачай книгу "А. П. Побегайло - Системное программирование в Windows.djvu" там и как таймер создавать и потоки организовавать.
1
|
|
|
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
|
||
| 27.09.2010, 15:02 | ||
|
есть минимум 4 метода реализации. мне, например, проще всего делать с семафорами. создаешь семафор при запуске программы. создаешь поток. в потоке делаешь бесконечный цикл, проверяющий семафор, и при его выключении - считающий некую переменную X. после расчета, поток отправляет сообщение-индикатор окну. в основной программе, по нажатию на кнопку - тупо пишешь значение из поля Edit в переменную Х и отключаешь семафор. и делаешь обработку сообщения-индикатора в классе окна. собственно, все. как это работает: при запуске программы создаются семафор и поток для расчета. поток видит включенный семафор - и тихо висит, в ожидании. когда вводится число, обработчик сообщений окна помещает его значение в X и отключает семафор. поток видит выключенный семафор, включает его сам, считает квадрат Х, посылает сообщение-индикатор обработчику окна, видит им-же включенный семафор, и снова тихо засыпает. обработчик окна получает сообщение-индикатор, берет посчитанный квадрат Х, и выводит его в окно. все счастливы.
1
|
||
| 27.09.2010, 15:02 | |
|
Помогаю со студенческими работами здесь
5
Прием данных COM порта через потоки. (MFC) Создание и исследование элемента управления, обрабатывающего отраженные сообщения (MFC) Потоки MFC "Недостаточно памяти" MFC, потоки Службы, потоки и сообщения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|