Работа в отдельном потоке, которая не мешает основной программеDelphi , Компоненты и Классы , ПотокиРабота в отдельном потоке, которая не мешает основной программеАвтор: Xavier Pacheco unit ThrdU; interface uses Classes; type TTestThread = class(TThread) private Answer: integer; protected procedure GiveAnswer; procedure Execute; override; end; implementation uses SysUtils, Main; { TTestThread } procedure TTestThread.GiveAnswer; begin MainForm.Edit1.Text := InttoStr(Answer); end; procedure TTestThread.Execute; var I: Integer; begin FreeOnTerminate := True; for I := 1 to 2000000 do begin if Terminated then Break; Inc(Answer, Round(Abs(Sin(Sqrt(I))))); Synchronize(GiveAnswer); end; end; end. unit Main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ThrdU; type TMainForm = class(TForm) Edit1: TEdit; Button1: TButton; Memo1: TMemo; Label1: TLabel; Label2: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var MainForm: TMainForm; implementation {$R *.DFM} procedure TMainForm.Button1Click(Sender: TObject); begin TTestThread.Create(False); end; end. В статье описана реализация работы в отдельном потоке на языке Delphi, которая не влияет на основную программу и позволяет выполнить задачи в фоновом режиме. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |