社区
Delphi
帖子详情
delphi 中线程类 及api线程
haochin
2010-06-23 12:24:47
我看了万一老师的博客,里面有长篇专门讲线程的,主要讲的是api方法的多线程。
请问大家,在做多线程时,一般是使用delphi的线程类,还是使用api的线程方法啊?
还有大家能不能帮找一个利用delphi线程类来实现多线程的简单例子。
我想了解,怎么样定义线程,线程里的过程怎么写,怎么执行这个线程,怎么样暂停这个线程,怎么样安全终止这个线程等等。
网上的连接也可以。以前对多线程没有深入的研究,现在没有办法工作需要啊。。。
...全文
139
10
打赏
收藏
delphi 中线程类 及api线程
我看了万一老师的博客,里面有长篇专门讲线程的,主要讲的是api方法的多线程。 请问大家,在做多线程时,一般是使用delphi的线程类,还是使用api的线程方法啊? 还有大家能不能帮找一个利用delphi线程类来实现多线程的简单例子。 我想了解,怎么样定义线程,线程里的过程怎么写,怎么执行这个线程,怎么样暂停这个线程,怎么样安全终止这个线程等等。 网上的连接也可以。以前对多线程没有深入的研究,现在没有办法工作需要啊。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dinoalex
2010-06-23
打赏
举报
回复
API里 CreateThread 的时候会返回一个句柄. 这个句柄可用来控制.
这个句柄还可以用于GetExitCodeThread来检查线程是否退出(执行完).
SQLDebug_Fan
2010-06-23
打赏
举报
回复
如果不用TThread类,你自己写线程,需要自己处理全局变量IsMultiThread,来告DELPHI目前是使用多线程,否则会引起BorlandMM出错。
Harryfin
2010-06-23
打赏
举报
回复
如果不是特殊需要,建议用TThread
luo_342815
2010-06-23
打赏
举报
回复
我用TThread,因为比较简单。
SQLDebug_Fan
2010-06-23
打赏
举报
回复
推荐用TThread类,因为DELPHI是从这个里面得到是否是有多线程在运行的。
bdmh
2010-06-23
打赏
举报
回复
dinoalex写了线程的基本应用代码,楼主看这个应该够用了
猴子先生大宝贝
2010-06-23
打赏
举报
回复
Delphi的Demo就有多线程例子
dinoalex
2010-06-23
打赏
举报
回复
BTW,也可以根据封装里的ID来进行控制.
dinoalex
2010-06-23
打赏
举报
回复
下面是简单的,放两个LABEL,三个BUTTON
[Code=Delphi(Pascal)]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMyThread = class(TThread)
ALabel: TLabel;
protected
procedure Execute; override;
public
Constructor Create(CreateSuspended: Boolean);
end;
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
AList: TList;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
constructor TMyThread.Create(CreateSuspended: Boolean);
begin
inherited Create(true);
end;
procedure TMyThread.Execute;
var
i: Integer;
begin
FreeOnTerminate := True;
for i := 0 to 100000 do
ALabel.Caption:= inttostr(i);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
mt: TMyThread;
begin
AList.Clear;
mt:= TMyThread.Create(true);
mt.ALabel:= Label1;
mt.Resume;
AList.Add(mt);
mt:= TMyThread.Create(true);
mt.ALabel:= Label2;
mt.Resume;
AList.Add(mt);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
AList:= TList.Create;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i: integer;
begin
for i:= 0 to AList.Count-1 do
TMyThread(AList.Items[i]).Suspend;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
i: integer;
begin
for i:= 0 to AList.Count-1 do
TMyThread(AList.Items[i]).Resume;
end;
end.
[/Code]
dinoalex
2010-06-23
打赏
举报
回复
都用,API较多. 你可以看VCL里的代码,就知道如何封装的了.
如果你还要DEMO的话,网上很多线程池的,载来看就行了.
DELPHI
的
API
实现多
线程
〖源代码〗
多
线程
是很重要的一种编程技巧和性能提升的方法,因此我们都应该好好学习掌握,作为一名初学者的我,最近在研究
Delphi
多
线程
,前些天尝试使用TTThread
类
实现了多
线程
,现在我用
API
也实现了
Delphi
多
线程
,自认为不错...
Delphi
多
线程
教程
Delphi
中
有一个
线程
类
TThread是用来实现多
线程
编程的,这个绝大多数
Delphi
书藉都有说到,但基本上都是对TThread
类
的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多
线程
编...
Delphi
XE10零基础实战快速入门
通过课堂上一个一个的实战例子,演示
Delphi
XE10的用法,最后通过一个完整的通讯录程序,让学员初步掌握软件开发的全部流程 让零基础学员快速入门
Delphi
编程,快速掌握
Delphi
的使用方法,并能够制作出自己的软件来。...
Delphi
API
串口通信 多
线程
例子.rar
Delphi
API
串口通信 多
线程
例子.rar
Delphi
多
线程
编程
一个使用
Delphi
进行多
线程
编程的 文档,里面有使用
API
进行多
线程
编程的说明
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章