![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| spiritus |
|
|||
|
Unregistered |
как сделать так, чтобы при запуске процедуры из DLL основное приложение продолжало работать не ожидая окончания встроенного бесконечного цикла в DLL процедуру.
|
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Делай вызов в отдельном потоке (thread)
-------------------- Все знать невозможно, но хочется |
|||
|
||||
| Смайлик |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 11.12.2003 Где: Киргизия Репутация: нет Всего: нет |
А как?
|
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Что-то вроде такого:
-------------------- Все знать невозможно, но хочется |
|||
|
||||
| StayAtHome |
|
|||
![]() Домосед ![]() ![]() Профиль Группа: Участник Сообщений: 456 Регистрация: 26.1.2004 Где: Украина Репутация: 1 Всего: 16 |
У меня наблюдается такой глюк ( или это -- ошибка в ДНК? :-) )
Основное приложение (не мое) в одном из своих дочерних потоков вызывает мою ДЛЛ-ку (плагин), которая в свою очередь создает свой отдельный поток. Так вот: выход из процедуры Synchronize поисходит только, если я в ДЛЛ-ке принудительно вызываю CheckSynchronize, иначе -- все висит. Кроме того -- событие OnTerminate -- тоже не происходит. В результате, в основном потоке ДЛЛки я не могу определить закончился ли вторичный поток или все еще работает. Comments? |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
А что с чем синхронизируется?
|
|||
|
||||
| StayAtHome |
|
|||
![]() Домосед ![]() ![]() Профиль Группа: Участник Сообщений: 456 Регистрация: 26.1.2004 Где: Украина Репутация: 1 Всего: 16 |
Ладно, раскрою карты.
Пишу Lister-плагин для Total Commander. Плагин должен, кроме всего прочего, позволять ТС открывать ini-файлы, подсвечивая их синтатксис. Плагин (яко ДЛЛ) вызывается встроенным просмотрщиком ТС, который уже является отдельным процессом внутри ТС. После вызова, моя ДЛЛ-ка запускает отдельный процесс, который должен подсвечивать синтаксис в RichEdite. Он то и нуждается в Synchronize, т. к. изменяет свойства контрола (TRichEdit) в основном процессе. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Нет, у меня почему-то этот номер с потоком, который открывается внутри DLL не проходит.
Запускаю... Да, вижу. поток создался, цикл молотит. Но пока из цикла не выйду приложение не выполнит дальше не строчки. Что в этом случае? |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
А-а-а-а. Пардоньте..., Вы же поток создаёте в основном приложении, которое DLL проц. и запускает. А я должен всё это сделать в DLL !!!
Во оно как! Как в єтом варианте поступить |
|||
|
||||
| StayAtHome |
|
|||
![]() Домосед ![]() ![]() Профиль Группа: Участник Сообщений: 456 Регистрация: 26.1.2004 Где: Украина Репутация: 1 Всего: 16 |
Бррр.... Я совсем запутался. Последние два поста -- одного автора? И к кому он обращается. Поподробнее плз.
|
|||
|
||||
![]()
|
| Правила форума "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. |