Форум: "Основная";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];
ВнизВопрос про BeginThread. Найти похожие ветки
← →
DVM © (2006-11-10 15:29) [0]
function BeginThread(SecurityAttributes: Pointer; StackSize: LongWord;
ThreadFunc: TThreadFunc; Parameter: Pointer; CreationFlags: LongWord;
var ThreadId: LongWord): Integer;
var
P: PThreadRec;
begin
New(P);
P.Func := ThreadFunc;
P.Parameter := Parameter;
IsMultiThread := TRUE;
Result := CreateThread(SecurityAttributes, StackSize, @ThreadWrapper, P,
CreationFlags, ThreadID);
end;
Внутри данной функции, взятой из VCL выделяется память под некий указатель, который потом передается в функцию потока.
А где же освобождение памяти?
← →
Сергей М. © (2006-11-10 15:32) [1]В теле ThreadWrapper
← →
Anatoly Podgoretsky © (2006-11-10 15:33) [2]> DVM (10.11.2006 15:29:00) [0]
Оно должно быть там где уничтожение потока.
← →
DVM © (2006-11-10 15:35) [3]А зачем вообще борланд сделала такую обертку под CreateThread() я что то никак не пойму?
Ну IsMultiThread := TRUE; выставляется, а еще смысл какой?
← →
Сергей М. © (2006-11-10 15:39) [4]
> зачем вообще борланд сделала такую обертку под CreateThread()
> я что то никак не пойму?
> Ну IsMultiThread := TRUE; выставляется, а еще смысл какой?
>
Смотрим в книгу - видим фигу ?)
Все ж видно в исходниках ...
← →
DVM © (2006-11-10 15:41) [5]
> Смотрим в книгу - видим фигу ?)
Да я уже посмотрел. Спасибо. Я в ASM не силен, потому смысл ThreadWrapper для меня загадка.
← →
tesseract © (2006-11-10 17:22) [6]
> DVM © (10.11.06 15:41) [5]
Это указатель на функцию потока. Код который он выполнит.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c