我在程序中有一个定时器不断监测网络连通状态的模块,但是发现程序启来后,由于此项功能的实现总是要导致程序反映迟钝,估计是占用资源的原因,因此,我想用多线程来做,请问各位高手,该如何实现??谢谢了
解决方案 »
- 超级郁闷,装了IE7.0,无法上传文件了,,,,
- 本热帝国理工,现在有一个pascal问题想请教大家~
- delphi 的打包问题
- pagecontrol中tabsheet的继承问题
- 怎么我用到DBGRID的时候编译就出错了?
- 树型菜单的详细使用???????100分
- 怎样从数据库读出一个图片字段并把它存为一个图片文件?
- 什么叫做句柄?
- Help ME!! 为什么编译的程序不能在其它计算机上运行!
- 为什么使用ServerSocket接收数据时,服务器端总要重启一边,而客户端程序没有问题
- 100分寻求答案!表导出到文本文件,但表中存在图像字段,图像字段值不能导出,请问各位高手数据库中图像怎么导才能导出?能导到什么样的
- 求助
我以前用在线程里面用了
while true do
begin
// 检测状态 end;
好象也点慢,楼主可以试试看了
Windows, Classes, StdCtrls, Dialogs, ACTIVESKINLib_TLB;type
MyThread = class(TThread)
private
procedure FindFile(Path: String);
procedure DisplayPath;
procedure DisplayDialog;
protected
procedure Execute; override;
public
Constructor Create(Path, PriPath, FileName: String; eLabel1,eLabel2: TSkinLabel);
property Successed: Boolean read FBoolean;
end;implementation{ MyThread }constructor MyThread.Create(Path, PriPath, FileName: String; eLabel1, eLabel2: TSkinLabel);
begin
inherited Create(False);
......
FreeOnTerminate := True; //自动释放线程对象
end;procedure MyThread.DisplayPath;
begin
......
end;procedure MyThread.DisplayDialog;
begin
......
end;procedure MyThread.Execute;
Var
TempStr: String;
Count, I: Integer;
begin
FindFile(FPriPath); //线程的主方法
If Not FBoolean Then
Begin
Count := Length(FPath);
For I := 1 To Count Do
Begin
TempStr := FPath[I] + ':';
findFile(TempStr);
End;
End; Synchronize(DisplayPath); //同步控制界面
Synchronize(DisplayDialog);
end;procedure MyThread.FindFile(Path: String);
begin
......
end;
end.这是以前写的一个线程,框架在此