RSS订阅 | 匿名投稿
您的位置:网站首页 > 线程 > 正文

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

作者:admin 来源:未知 日期:2010/5/22 2:25:17 人气: 标签:

使用线程时有两个主要任务:第一,创建线程,第二,创建线程入口函数。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;
读完这篇文章后,您心情如何?
0
0
0
0
0
0
0
0
本文网址: