delphi写一个简单的多线程的程序


本文整理自网络,侵删。

 使用线程时有两个主要任务:第一,创建线程,第二,创建线程入口函数。Windows API调用CreateThread函数来创建一个线程。 
hthread := CreateThread(nil, //是安全属性,如果此参数设为Nil,使用的是缺省安全属性,在Windows95/98下,标准的就设为Nil,只有想此线程有子线程时才可能脱离这种模式。
0, //如果这个参数为0,就是线程的堆栈长度和此应用程序的的堆栈长度相同,可以总把此参数设置为0
@ThreadFunc, //线程开始初的线程名称,
nil, // argument of thread
0, // Create flags
ThreadID); // thread ID


function ThreadFunc(P: Pointer): LongInt; stdcall;
var
i: Integer;
DC: HDC;
S: string;
begin
DC := GetDC(Form1.Handle);
SetBkColor(DC, GetSysColor(color_btnface));
for i := 0 to 100000 do
begin
S := IntToStr(i);
TextOut(DC, 10, 10, PChar(S), Length(S));
end;
ReleaseDC(Form1.Handle, DC);
end;

//采用一个多线程
procedure TForm1.Button4Click(Sender: TObject);
var
hThread: THandle;
ThreadID: DWord;
begin
hthread := CreateThread(nil, //Security attribute
0, //Initial Stack
@ThreadFunc, //Starting address of thread
nil, // argument of thread
0, // Create flags
ThreadID); // thread ID

if hthread = 0 then MessageBox(Handle, 'No Thread', nil, MB_OK);
end;

//采用单线程
procedure TForm1.Button5Click(Sender: TObject);
begin
ThreadFunc(nil);
end;

相关阅读 >>

Delphi 如何设置热键

Delphi环境下基于spcomm控件开发串口通讯报文字节丢失的问题解决

Delphi 在瑞星2010全保护下创建文件夹

Delphi串口通信编程

Delphi 如何屏蔽alt+f4

Delphi system 提供的编译期函数

Delphi gdi+ 文本输出

Delphi unigui 获取当前ip

Delphi webbrowser1 保存文档为 .html

Delphi 将jpg图片上传到sqlserver数据库里

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...