Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.08;
Скачать: CL | DM;

Вниз

Потоки(Threads) в DLL   Найти похожие ветки 

 
Dj Karies   (2002-06-26 12:08) [0]

Как добиться работы потоков в DLL?
В exe-файле создаваемые потоки работают
без проблем(Thread-таймер, Анимированный gif, TAudioStream, thrddemo.dpr из папки Demos\).
Если они же создаются в DLL, то вообще не работают или виснут без работы.
Т.е. просто так ни один потомок TThread не работает в Dll.
Некоторые потоки могут работать, если у exe и dll общие Runtime Rtl и Vcl bpl-ки.

Конкретный пример:
В thrddemo.dpr переименовываем "program" в "library", компилим.
Создаём Project1.dpr, в котором на Button1Click вешаем LoadLibrary("thrddemo.dll"),
компилим. Запускаем Project1.exe, давим Button1. Появляется окошко демки.
Жмём "Start Sorting" и облом.
Далее в оба проекта ставим флажок "Build with runtime packages" с rtl и vcl. Оба компилим.
Снова запускаем Project1.exe тоже самое, но при закрытии demo-окна, оно не закрывается, а
идёт сортировка. При повторном Close ошибки и всё,
включая Project1.exe закрывается с errorами.


 
Виктор Щербаков ©   (2002-06-26 12:18) [1]


> В thrddemo.dpr переименовываем "program" в "library", компилим.

Ни хрена себе методы...
Волосы дыбом!


 
Игорь Шевченко ©   (2002-06-26 12:21) [2]

Ночной кошмар программиста :-)


 
oomneeq ©   (2002-06-26 13:05) [3]

Про потоки в DLL
http://www.pergolesi.demon.co.uk/prog/threads/Ch13.html


 
Alex_LG ©   (2002-06-26 14:04) [4]

а кстати про потоки в длл:
создаю в этом потоке таймер и ТСПсервер
форму не создаю - при создании таймера с сервером в функция Create(nil)
и что? события не вызываются! то есть ни по таймеру, ни по коннекту. хотя сервер порт открывает (фаервол говорит об этом)
что делать?
пробовал открывать сокет средствами API - та же картина: тот код, что раньше работал (в основном потоке) - в параллельном события не ловит (именно события сокета и таймера) - или не определяет коректно, никак не пойму


 
panov ©   (2002-06-26 14:09) [5]

>Alex_LG © (26.06.02 14:04)
Для такой реализации в отдельном потоке нужно самому реализовывать выборку и обработку сообщений.



Страницы: 1 вся ветка

Текущий архив: 2002.07.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
1-23542
putim
2002-06-26 17:17
2002.07.08
вопрос


7-23814
Goblinus
2002-04-16 15:59
2002.07.08
Как выдвинуть дверцу CD-ROM a?


1-23557
sergn
2002-06-25 21:12
2002.07.08
Очистка TTreeView


1-23546
Дельфятник
2002-06-26 17:37
2002.07.08
Access Violation при работе с TComboBox.


3-23526
John Kayfolom
2002-05-16 13:30
2002.07.08
Формирование CREATE TABLE