创建新的线程,参数传入的问题。 ( 积分: 50 )

  • 主题发起人 主题发起人 cjsam
  • 开始时间 开始时间
C

cjsam

Unregistered / Unconfirmed
GUEST, unregistred user!
定义一个线程:
TDealdata = class(TThread)
private
FData:array[0..MSG_LEN - 1] of char;
public
Constructor Create(const buf:pchar????);///****就是这个参数的问题设置什么样的 类 型。
{ Private declarations }
protected
procedure Execute;
override;
proceduredo
Terminate;
override ;
procedure Dldata;
end;
当我收到网络上传来的一个数据,的时候,建立一个新的线程去处理这些数据。
var
buffer:array [0..511] of char;
Ddata:TDealdata ;
begin
ZeroMemory(@buffer,512);
Socket.RecvBuf(buffer,sizeof(buffer));
Ddata :=TDealdata.Create(buffer);//需要将我收到的数据的buffer传入到线程里去。
end;

////请问,我需要在线程类里的构造函数中Constructor Create(const buf:pchar????),定义一个什么样的类型参数才可以将我收到的buffer传到我的线程类的FData:array [0..MSG_LEN - 1] of char这个变量里去?
 
var
buffer:array [0..511] of char;
Ddata:TDealdata ;
begin
ZeroMemory(@buffer,512);
Socket.RecvBuf(buffer,sizeof(buffer));
Ddata :=TDealdata.Create(buffer);//需要将我收到的数据的buffer传入到线程里去。
end;
也就是说在这个地方怎样处理,才能将buffer的数据全给传入到新的线程的fdata的这个变量里去。
 
constructor create(const buffer);
begin
Move(Buffer,Fdata,512);
...
end;
 
我感觉用它的特性比较好
 
Constructor Create(const buf:pchar????);///****就是这个参数的问题设置什么样的 类 型。
++++++++++++++++++
我也碰到类似的问题,我想在这里传递类不知道怎么实现?
 
Ddata :=TDealdata.Create(@buffer[0]);//
或者:写一个set函数,在启动线程前调用
 

Similar threads

后退
顶部