![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| POP |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 7.9.2006 Репутация: нет Всего: 1 |
Я написал программу которая посылает команды в модем и принимает ответ выводя его на экран. Порт открываю в синхроне, все работает.
Чтобы прога не висла в ожидании ответа (если модем не отвечает), нужно фунцию ожидания (WaitCommEvent) и чтения из порта сделать в отдельном потоке. Вот тут я натыкаюсь на проблемы. В асинхрон пока не лезу, надо разобраться сначала в более легком. По потоки читал в Библии Delphi Фленова. Пока создал новый поток в программе пустой ((New - Thread Object) Вопросы у меня возникли такие: Открытие и конфигурация порта происходит в главном модуле, так вот как общаться с новым потоком, например передавать ему handle открытого порта , маску (SetCommMask) ожидаемого события и другие переменные? И как забирать прочитанные данные из созданного потока, которые функция ReadFile хранит в своем буфере после прочтения? Я так понял у каждого потока должны быть свои переменные, которые не должны пересекаться. Про синхронизацию читал у Фленова , но там все очень кратко описано. Непонятно с переменными. Подскажите плиз кто знает. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Это один из возможных путей реализации. Если переменную объявить не в var , а в threadVar то она будет потокобезопастной (будут создаватся копии) Но лучше всего почитать то что Snowy продложил это серьезная книга. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| POP |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 7.9.2006 Репутация: нет Всего: 1 |
Все разобрался, подсказали добрые люди.
http://forum.vingrad.ru/index.php?showtopic=60076 - Здесь очень все сложно и подробно, начинающим не осилить, теории много а практики с гулькин нос. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Без теории это чревато многочислеными ошибками. Изучить потоки это не все равно, что изучить пару функций тут есть много тонкостей и неочевидных вещей. Многопоточность требует намого более строгого и подхода. А, вообще, на мой взгляд книга суперская, я ее, что говорится, на одном дыхании прочитал, ну просто не мог оторватся, и сделал себе оффлайн вариант, где убрал все лишнее оставил только текст и рисунки, "навел марафет", сделал оглавление с гиперсылками, исправил все опечатки, а их было штук 20 и юзаю. Если кому надо, то я выложу. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| RideX |
|
|||
|
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 94 Регистрация: 8.9.2004 Репутация: 4 Всего: 7 |
alexeis1, мне надо, выложи пожалуйста, если не затруднит. Заранее спасибо!
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| RideX |
|
|||
|
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 94 Регистрация: 8.9.2004 Репутация: 4 Всего: 7 |
Взял, спасибо!
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |