为什么运用一个线程,在win2000任务管理器中显示的CPU使用率为100%,先声谢谢
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ADODB;
type
TTest=class(TThread)
private
answer:integer;
protected
procedure getanswer;
procedure execute;override;
end;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
SpeedButton1: TSpeedButton;
ADOCommand1: TADOCommand;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
procedure TTest.getanswer;
begin
form1.edit1.Text:=inttostr(answer);
end;
procedure TTest.execute;
var
i:integer;
begin
FreeOnTerminate:=true;
for i:=0 to 100000 do
begin
if terminated then break;
inc(answer,i);
synchronize(getanswer); end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
TTest.Create(false);end;
解决方案 »
- adodataset用filter过滤后,dbgrid里还能显示表里所有的数据吗?
- 看看这个功能怎么实现?
- 关于项目开发管理软件的使用讨论
- delphi中己存在的单元文件在修改后,如何进行重新编译。如ADODB.PAS文件改了其中的内容,要重新进行编译。
- 如何更改本机上IIS服务的IP
- (求助Delphi高手)delphi socket发送和接受tcp信息包
- 大家好!!找工作,大家能推荐嘛??
- 这个代码如何改?--------------关于取得文件夹下的文件清单?
- VS.NET有什么特征是DELPHI6 和kylix都达不到的?
- 如何用DCOM连接客户服务器程序?
- 有没有上海的朋友合装有线通?
- opendialog问题
begin
if terminated then break;
inc(answer,i);
synchronize(getanswer); Sleep(1); // 添加这句试试
end;