Delphi(Pascal)线程执行任务

来源:互联网 发布:caffe windows github 编辑:程序博客网 时间:2024/05/12 17:40
Delphi(Pascal) code
unit Unit1;interfaceuses  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.