[Delphi学习]Thread类的创建及使用
2008-12-20 01:31
375 查看
[Delphi学习]Thread类的创建及使用
http://www.77169.cn/more.asp?name=ALiWY&id=13380
来源:DIY地带
一、Thread类的创建:
unit Thread;
{ 线程类的创建
编译环境: Windows 2003 Sever Delphi 7.0 Enterprise
}
interface
uses classes,sysutils,StdCtrls;
type
TB = class(TThread)
private
i :integer;
Fedt :TEdit;
procedure Update ;
public
procedure execute;override;
constructor create(IsSuspended :Boolean;edt :TEdit);
end;
implementation
uses MainForm;
procedure TB.Update;
begin
Fedt.Text :=inttostr(i);
end;
constructor TB.create(IsSuspended: Boolean; edt: TEdit);
begin
inherited create(IsSuspended);
Fedt := edt;
end;
procedure TB.execute;
begin
i:=0;
while(not Terminated) do
begin
Synchronize(Update);
inc(i);
end;
end;
end.
二、Thread类的使用:
unit MainForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Thread;
type
TfrmMain = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
a,b:TB;
implementation
{$R *.dfm}
procedure TfrmMain.FormCreate(Sender: TObject);
begin
a:=TB.create(true,edit1);
b:=TB.create(True,edit2);
end;
procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
freeandnil(a);freeandnil(b);
end;
procedure TfrmMain.ButtonClick(Sender: TObject);
var c :TB;
begin
if sender = Button1 then c :=a
else c:=b;
if c.Suspended then begin
c.Resume ; (sender as TButton).Caption :='暂停';
end else begin
c.Suspend ;(Sender as TButton).Caption :='开始';
end;
end;
end.
http://www.77169.cn/more.asp?name=ALiWY&id=13380
来源:DIY地带
一、Thread类的创建:
unit Thread;
{ 线程类的创建
编译环境: Windows 2003 Sever Delphi 7.0 Enterprise
}
interface
uses classes,sysutils,StdCtrls;
type
TB = class(TThread)
private
i :integer;
Fedt :TEdit;
procedure Update ;
public
procedure execute;override;
constructor create(IsSuspended :Boolean;edt :TEdit);
end;
implementation
uses MainForm;
procedure TB.Update;
begin
Fedt.Text :=inttostr(i);
end;
constructor TB.create(IsSuspended: Boolean; edt: TEdit);
begin
inherited create(IsSuspended);
Fedt := edt;
end;
procedure TB.execute;
begin
i:=0;
while(not Terminated) do
begin
Synchronize(Update);
inc(i);
end;
end;
end.
二、Thread类的使用:
unit MainForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Thread;
type
TfrmMain = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
a,b:TB;
implementation
{$R *.dfm}
procedure TfrmMain.FormCreate(Sender: TObject);
begin
a:=TB.create(true,edit1);
b:=TB.create(True,edit2);
end;
procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
freeandnil(a);freeandnil(b);
end;
procedure TfrmMain.ButtonClick(Sender: TObject);
var c :TB;
begin
if sender = Button1 then c :=a
else c:=b;
if c.Suspended then begin
c.Resume ; (sender as TButton).Caption :='暂停';
end else begin
c.Suspend ;(Sender as TButton).Caption :='开始';
end;
end;
end.
相关文章推荐
- delphi 使用工控机控件 iThreadTimes 出现问题, 导致主程序创建页面的时候, 阻塞消息, 不能正常执行。
- 在Delphi中如何创建和使用udl文件
- Maven学习 (三) 使用m2eclipse创建web项目
- Android学习_使用Adapter创建ListView
- SpringBoot入门学习一(如何使用IDEA创建一个SpringBoot应用)
- 【已学习】使用隔离用户模式创建新的 FTP 站点
- C# 多线程编程 - 使用Thread类创建线程
- Maven学习 (三) 使用m2eclipse创建web项目
- Delphi中使用Win32 API创建内建消息循环的线程函数
- [原创]W2k Driving 学习笔记(二)使用GCC创建 Windows NT 下的内核DLL
- SilverLight商业应用程序开发---学习笔记(10)使用数据源窗口创建DataGrid
- EAServer 使用ThreadManager创建服务组件
- 一步步学习SPD2010--第一章节--探索SPD2010(4)--使用SharePoint Designer创建站点
- (转)[AndEngine学习教程] 第2节 使用AndEngine.jar创建工程
- Maven学习总结(7)——eclipse中使用Maven创建Web项目
- delphi开发日志——基窗体,使用面向对象编程的编程思想创建基类
- Maven学习总结(7)——eclipse中使用Maven创建Web项目
- android学习之使用AlertDialog创建对话框
- Delphi插件创建、调试与使用应用程序扩展
- (转载)Qt 的线程与事件循环——可打印threadid进行观察槽函数到底是在哪个线程里执行,学习moveToThread的使用)