type
Tdata=record
Time: string;
CardNO: string;
State: Integer;
end;//定义结构体
function ThredSendData(lpParameter: Pointer):Boolean;//线程函数声明
///////////////////////////////////////////////////////////////////////////
var
Math : ^Tdata;
data: Tdata;
begin
..
..//初始化结构体data
Math:=@data;
BeginThread(nil,0,@ThredSendData,Pointer(Math),0,ThreadID);//开始执行线程函数
end;
基本上是这样传递的参数,为什么我在线程中得不到结构体中的值?请高手指教。。
Tdata=record
Time: string;
CardNO: string;
State: Integer;
end;//定义结构体
function ThredSendData(lpParameter: Pointer):Boolean;//线程函数声明
///////////////////////////////////////////////////////////////////////////
var
Math : ^Tdata;
data: Tdata;
begin
..
..//初始化结构体data
Math:=@data;
BeginThread(nil,0,@ThredSendData,Pointer(Math),0,ThreadID);//开始执行线程函数
end;
基本上是这样传递的参数,为什么我在线程中得不到结构体中的值?请高手指教。。
type
Pdata =^Tdata; Tdata=record
Time: string;
CardNO: string;
State: Integer;
end;//定义结构体function ThredSendData(lpParameter: Pointer):Boolean;//线程函数声明
var str: string;
m_param: Pdata;
begin
if lpParameter <> nil then
begin
m_param := Pdata(lpParameter);
str := Format('data.Time=%s,data.CardNO=%s,data.State=%d',[m_param.Time, m_param.CardNO, m_param.State]); end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Math: Pdata;
ThreadID: Cardinal;
begin
New(Math);
Math.Time := 'time';
Math.CardNO := 'cardno';
Math.State := 1;
BeginThread(nil,0,@ThredSendData,Pointer(Math),0,ThreadID);//开始执行线程函数
end;