1,593
社区成员
发帖
与我相关
我的任务
分享
unit t_Getdata;
interface
uses
Classes,windows,SysUtils,VBase, xmldom, XMLIntf,msxmldom, XMLDoc ,ACTIVEX,ADODB,Controls,dialogs;
type
TGetData = class(TThread)
private
{ Private declarations }
GetStreamData ,
StreamData :TMemoryStream;
protected
procedure Execute; override;
public
constructor Create;
destructor Destroy;override;
end;
implementation
uses Frm_Main, FBase, Frm_Error;
{ TGetData }
procedure TGetData.Execute;
var
TotalSize :integer;
begin
{ Place thread code here }
StreamData := TMemoryStream.Create ;
while (not Terminated) do
begin
if not FrmMain.tcConn.Connected then
begin
Terminate ;
exit;
end;
try
GetStreamData := TMemoryStream.Create;
StreamData.SetSize(0);
TotalSize:=strtoint(FrmMain.tcConn.ReadLn);
FrmMain.tcConn.ReadStream(StreamData,FrmMain.tcConn.ReadInteger ,false);
StreamData.Seek(0,soFromBeginning);
GetStreamData.CopyFrom(StreamData,StreamData.Size);
while GetStreamData.Size < TotalSize do
begin
StreamData.SetSize(0);
FrmMain.tcConn.ReadStream(StreamData,FrmMain.tcConn.ReadInteger ,false);
StreamData.Seek(0,soBeginning);
GetStreamData.WriteBuffer(StreamData,StreamData.Size);
end;
GetStreamData.Seek(0,soBeginning);
if GetStreamData.Size <=0 then Continue;
try
GetDataList.LockList.Add(GetStreamData);
Finally
GetDataList.UnlockList ;
end;
finally
end;
end;
FreeAndNil(StreamData);
end;
constructor TGetdata.Create ;
begin
freeonterminate := true;
inherited create(true);
end;
destructor TGetdata.Destroy;
begin
inherited Destroy;
end;
end.