![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CreateThread-очередной глупый вопрос
sergeiA © (2005-02-01 09:02:00)Как передать параметр функции? Делаю так:
var
a:Cardinal;
ThreadProc(Lp:Cardinal):Cardinal;
begin
//
end;
вызываю:
CreateThread(nil,0,@ThreadProc,Pointer(a),0,id);
Нить запускается, но из процедуры я никак не могу увидеть то что ей передавал. Что я не так делаю?
VsInLg (2005-02-01 10:30:00) [21]>она - вот в этой строчке:
>IsMultiThread := TRUE
И на что это влияет? Как это можно ощутить? Если не секрет, конечно!
Digitman (2005-02-01 10:27:00) [22]
> VsInLg (01.02.05 10:21) [4]
> Ну и какая хрен разница?????????
разница весьма ощутима
она - вот в этой строчке:
IsMultiThread := TRUE
VsInLg (2005-02-01 10:21:00) [23]Ну и какая хрен разница?????????
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;
Alex Konshin (2005-02-01 10:11:00) [24]И скорее всего тебе нужно использовать BeginThread вместо CreateThread
kaZaNoVa (2005-02-01 09:31:00) [25]думаю и так можно ..
var
a:Cardinal;
ThreadProc(Lp:Cardinal):Cardinal; stdcall;
begin
//
end;
вызываю:
CreateThread(nil,0,@ThreadProc,@a,0,id);
Digitman (2005-02-01 09:09:00) [26]
> Что я не так делаю?
function ThreadProc(Lp:Cardinal):Cardinal; stdcall;