![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 12.10.2010
Сообщений: 19
|
![]()
Здравствуйте.
Знакомплюсь с многопоточным программированием в Delphi. Первая лабораторная ознакомительного рода: создание потоков средствами API. Кнопки, реализующие методы создание поточного вывода (Создание потока) и вывода в общем потоке работают (Без потока). А после нажатия по кнопке приостановки потока (приостановить) приложение перестает отвечать на запросы. Прошу, пожалуйста, указать на то, что реализовано мною не верно. Delphi 7, Windows 7 Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Это правится при помощи Application.ProcessMessages
добавь это перед приостановкой потока. т.е. так: Код:
Последний раз редактировалось Человек_Борща; 28.02.2011 в 23:40. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 12.10.2010
Сообщений: 19
|
![]()
Человек_Борща, к сожалению, добавление данного метода не изменило ситуации. Немного почитал о нем: как я понял, он используется для зазграничения действий в одном потоке: приостанавливает одно и выполняет другое. У меня же вывод на форму и так происходит в отдельном потоке.
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 12.10.2010
Сообщений: 19
|
![]()
Пепел Феникса, так понимаю, что типа longint, тк один из параметров CreateThread - есть адресное значение процедуры Func. Я правильно понял?
|
![]() |
![]() |
![]() |
#6 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
нет.
Цитата:
я про прототип функции потока, а то потом будет веселые ошибки стека ловить. а функция должна иметь вид Код:
на делфи Код:
Цитата:
поток не должен перерисовывать сам форму. правильно делать так чтоб поток слал форме сообщение(и форма уже в ответ на это сообщение перерисовывалась так как надо) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 12.10.2010
Сообщений: 19
|
![]()
Пепел Феникса, так понял, что TextOut не должен выполняться в самой потоковой функции. Но реализация этого не понятна...
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 12.10.2010
Сообщений: 19
|
![]()
Почитал немного на тему отправки сообщений. Подправил Ваш предложенный вариант кода. Получилось вот что:
Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нахождение максимального потока транспортной сети (где ошибка) | d3mon4eg | Помощь студентам | 4 | 13.06.2015 15:05 |
Многопоточность. Ведение логов из каждого потока. Проблемы | Человек_Борща | Общие вопросы Delphi | 3 | 07.01.2011 18:22 |
Как узнать номер потока из самого потока? | GaMeSTeR | Помощь студентам | 0 | 03.12.2010 09:50 |
Продолжения установки =) | Lemo | Операционные системы общие вопросы | 4 | 04.01.2009 22:03 |