Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос про BeginThread. [D7, WinXP]


DVM ©   (2006-11-10 15:29:00) 

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 выделяется память под некий указатель, который потом передается в функцию потока.
А где же освобождение памяти?


tesseract   (2006-11-10 17:22:00) [1]


> DVM ©   (10.11.06 15:41) [5]


Это указатель  на функцию  потока. Код который он выполнит.


DVM   (2006-11-10 15:41:00) [2]


> Смотрим в книгу - видим фигу ?)

Да я уже посмотрел. Спасибо. Я в ASM не силен, потому смысл ThreadWrapper для меня загадка.


Сергей М.   (2006-11-10 15:39:00) [3]


> зачем вообще борланд сделала такую обертку под CreateThread()
> я что то никак не пойму?
> Ну IsMultiThread := TRUE; выставляется, а еще смысл какой?
>


Смотрим в книгу - видим фигу ?)

Все ж видно в исходниках ...


DVM   (2006-11-10 15:35:00) [4]

А зачем вообще борланд сделала такую обертку под CreateThread() я что то никак не пойму?
Ну IsMultiThread := TRUE; выставляется, а еще смысл какой?


Anatoly Podgoretsky   (2006-11-10 15:33:00) [5]

> DVM  (10.11.2006 15:29:00)  [0]

Оно должно быть там где уничтожение потока.


Сергей М.   (2006-11-10 15:32:00) [6]

В теле ThreadWrapper


Наверх

Титульная страница Поиск, карта сайта Написать письмо