7 / 7 / 0
Регистрация: 28.09.2009
Сообщений: 52
|
|||||||||||
1 | |||||||||||
Вывод информации из потока.28.08.2010, 00:12. Показов 1682. Ответов 6
Метки нет (Все метки)
В программе используется 1 дополнительный поток, в котором работает цикл. Мне нужно, чтобы когда цикл увеличивает переменную на +1, это отобразилось в Label.
Основное окно.
0
|
28.08.2010, 00:12 | |
Ответы с готовыми решениями:
6
Вывод из потока Быстрый вывод данных из потока Создание потока ostringstream и вывод в Memo Вывод информации из потока |
70 / 70 / 4
Регистрация: 02.07.2010
Сообщений: 228
|
|
28.08.2010, 12:27 | 2 |
Странно, у меня при разбиении на потоки всё работало норм. А что пишет, что ты подразумеваешь под "не работает"?
P.S. может конечно я что-то не уловил, но зачем тут другой поток, может проще обойтись задержками через таймер, или ты пишешь именно распределённое по ядрам приложение?
0
|
7 / 7 / 0
Регистрация: 28.09.2009
Сообщений: 52
|
|
28.08.2010, 14:42 [ТС] | 3 |
Я использую таймер Sleep();, Но он подвешивет программу на время своего выполнения ( а он выполнялся 99% времени ) Я решил вывезти его в отдельный поток, так что бы основное окно программы не зависало. Если есть предложения как заменить Sleep(); буду только рад.
С строками 12 и 15, приложение компилируется, но выдает ошибку уже при использовании:
0
|
70 / 70 / 4
Регистрация: 02.07.2010
Сообщений: 228
|
|||||||||||
28.08.2010, 16:05 | 4 | ||||||||||
sleep это не таймер а задержка, она вроде использует пустой цикл for вот и подвисает, возможно тебе требуется компонент TTimer, он срабатывает через указанное пользователем количество секунд и в обработчик срабатывания можно запихнуть нужный тебе код.
вот подобный код и он работает без нареканий
1
|
7 / 7 / 0
Регистрация: 28.09.2009
Сообщений: 52
|
|
28.08.2010, 16:19 [ТС] | 5 |
Поток прописан в Unit1.h
Попробую покопается с TTimer. Вот сам исходник:
0
|
10 / 10 / 4
Регистрация: 14.08.2010
Сообщений: 103
|
|
28.08.2010, 17:22 | 6 |
Попробую и я подсказать. Дело в том что с похожей проблемой я сталкивался. У меня в отдельном потоке обрабатывались поступающие данные из компорта и там же я их выводил на экран(в таблицу из принятых hex-символов). И вот у меня не было ошибок(ошибки возможно появились бы при более "расширенном" выводе этих данных и т.д.), но были всевозможные глюки. Как выяснилось, обращаться к компонентам VCL на форме в потоке нужно обязательно с использованием метода Synchronize иначе будут такие глюки или ошибки(как у Вас). Подробнее пока не готов ответить т.к. это писал в прошлом году и тогда все хорошо знал, а сейчас только опять вернулся к программированию на ПК(тогда было у меня это как хобби, сейчас уже больше как необходимость).
1
|
70 / 70 / 4
Регистрация: 02.07.2010
Сообщений: 228
|
|
28.08.2010, 18:08 | 7 |
перетащи код в cpp-файл, прям перед обработчиком первой кнопки и будет тебе счастье
1
|
28.08.2010, 18:08 | |
28.08.2010, 18:08 | |
Помогаю со студенческими работами здесь
7
Вывод информации из отдельного потока на форму Определить время работы потока на вывод информации в контролл Вывод информации в texBox2 и texBox3 на основании информации texBox1 Рубрикация интенсивного потока информации Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |