您的位置:首页 > 编程语言 > Delphi

delphi 多线程定时执行程序如何写

2016-05-20 14:23 776 查看
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TSysChatMainForm = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
FTestNetThread: TThread;
public
{ Public declarations }
end;

var
SysChatMainForm: TSysChatMainForm;

implementation

{$R *.dfm}

type
TTestNetThread = class(TTHread)
procedure Execute; override;
procedure RefreshUIInMainThread;
end;

{ TTestNetThread }

procedure TTestNetThread.RefreshUIInMainThread;
begin
bsTrayIcon.ShowBalloonHint('网络异常','由于网络异常,程序掉线!',bsbitInfo);
end;

procedure TTestNetThread.Execute;
begin
inherited;
FreeOnTerminate := True;

while (not Terminated) and (not InternetGetConnectedState(nil, 0)) then
begin
Data.UserOff('[脱机]',false);
Synchronize(RefreshUIInMainThread);

Sleep(3000)
end;
end;

{ TSysChatMainForm }

procedure TSysChatMainForm.FormCreate(Sender: TObject);
begin
FTestNetThread := TTestNetThread.Create(False);
end;

procedure TSysChatMainForm.FormDestroy(Sender: TObject);
begin
FTestNetThread.Terminate;
end;

end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  多线程 定时