Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];
ВнизВопрос про потоки Найти похожие ветки
← →
Zuser (2005-09-05 23:33) [0]народ, почему если в DLLке в initialization создать поток, то потом, в finalization при его уничтожении он виснет на WaitFor?
что-то вроде этого:
TMyThread=class(TThread)
protected
procedure Execute; override;
end;
var
MyThread: TMyThread
procedure TMyThread.Execute;
begin
while not Terminated do;
end;
initialization
MyThread := TMyThread.Create(False);
finalization
MyThread.Terminate;
MyThread.WaitFor; { вот тут }
MyThread.Free;
end.
← →
Alexander Panov © (2005-09-06 00:30) [1]Zuser (05.09.05 23:33)
while not Terminated do;
Кто сказал, что основной поток получит управление за приемлимый промежуток времени?
← →
Zuser (2005-09-06 08:47) [2]а можно чуть-чуть поподробнее?
← →
Digitman © (2005-09-06 09:02) [3]
> Zuser
при иниц-ции библ-ки ожидать старт потока бессмысленно, равно как и бессмысленно при финализации библ-ки ожидать завершение потока - ты никогда не дождешься этих событий.
меняй логику.
← →
Zuser (2005-09-06 10:10) [4]Видимо да, но все равно остается два вопроса:
1. почему?
2. как менять логику? должена выполняться фоновая задача которая реализована в DLL (что-то вроде плагина). принимаются любые варианты.
← →
Digitman © (2005-09-06 10:30) [5]
> 1. почему?
из-за блокировок, устанавливаемых системой в эти моменты
> 2. как менять логику?
просто экспортируй пару ф-ций - одна будет стартовать поток, другая завершать его и ожидать завершения
← →
Zuser (2005-09-06 10:46) [6]к сожалению, exe-файл ничего не знает о dll. он умеет только загружать и выгружать "нужные" dll-ки.
← →
kblc © (2005-09-06 10:56) [7]попробуй пишсать всё в
begin .. end.
.dpr библиотеки
← →
Digitman © (2005-09-06 11:07) [8]
> Zuser (06.09.05 10:46) [6]
> exe-файл ничего не знает о dll
сделай так чтобы знал
← →
Zuser (2005-09-06 11:56) [9]это плохой вариант, неужели нет других способов?
← →
Digitman © (2005-09-06 12:07) [10]
> Zuser (06.09.05 11:56) [9]
это НОРМАЛЬНЫЙ вариант.
длл в 1-ю очередь для этого и существуют.
не нравится ?
реализуй свою длл как ole/com-сервер
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c