admin 管理员组文章数量: 887021
2024年1月18日发(作者:mysql的使用方法)
很多朋友一直都在问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();
SetBkColor(DC, GetSysColor(COLOR_BTNHIGHLIGHT));
for I := 1 to do
begin
TestStr := r + IntToStr(I);
TextOut(DC, 10, 10, PChar(TestStr), Length(TestStr));
end;
ReleaseDC(, DC);
end;
procedure 1Click(Sender: TObject);
var
hThread: THandle;
ThreadID: DWord;
vParData: PParData;
begin
new(vParData);
:= 10000;
r := '多线程测试';
hThread := CreateThread(nil, 0, @TestThread, vParData, 0, ThreadID);
if hThread = 0 then
MessageBox(Handle, '创建失败!', nil, MB_OK);
end;
end.
版权声明:本文标题:CreateThread传递多个参数的方法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705560397h489987.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论