码迷,mamicode.com
首页 > 其他好文 > 详细

CreateThread传递多个参数的方法(利用结构体的参数指针)

时间:2017-07-10 22:21:55      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:data   boolean   func   target   object   cli   set   htm   参数   

很多朋友一直都在问CreateThread如何传递多个参数,CreateThread传递参数的方式是指针传递的,所以这里也可以利用指针来做!Demo 关键代码如下:

type
  TfrmTestThread = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  PParData = ^TParData;

  TParData = record
    Count: Integer;
    TestStr: string[100];
  end;

var
  frmTestThread: TfrmTestThread;

implementation

{$R *.dfm}

function TestThread(AParData: PParData): Boolean; stdcall;
var
  I: Integer;
  DC: HDC;
  TestStr: string;
begin
  DC := GetDC(frmTestThread.Handle);
  SetBkColor(DC, GetSysColor(COLOR_BTNHIGHLIGHT));
  for I := 1 to AParData.Count do
  begin
    TestStr := AParData.TestStr + IntToStr(I);
    TextOut(DC, 10, 10, PChar(TestStr), Length(TestStr));
  end;
  ReleaseDC(frmTestThread.Handle, DC);
end;

procedure TfrmTestThread.Button1Click(Sender: TObject);
var
  hThread: THandle;
  ThreadID: DWord;
  vParData: PParData;
begin
  new(vParData);
  vParData.Count := 10000;
  vParData.TestStr := ‘多线程测试‘;
  hThread := CreateThread(nil, 0, @TestThread, vParData, 0, ThreadID);
  if hThread = 0 then
    MessageBox(Handle, ‘创建失败!‘, nil, MB_OK);
end;

end.

http://www.xuedelphi.cn/article/html2010/2010091922162863.html

 

http://www.cnblogs.com/azhqiang/p/3957312.html

CreateThread传递多个参数的方法(利用结构体的参数指针)

标签:data   boolean   func   target   object   cli   set   htm   参数   

原文地址:http://www.cnblogs.com/findumars/p/7147640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!