Class teventthread
Unit
Declaration
type teventthread = class(tsemthread)
Description
This item has no description. Showing description inherited from tmsethread.
Runs a method or a global function in a separate thread, so that a long operation does not block the application while it runs. The following example starts a three second simulated operation in a thread while a paint box blinks to show that the user interface stays responsive, and properly terminates the thread when the form is destroyed.
uses main_mfm; { ttestthreadcontainer } destructor ttestthreadcontainer.Destroy; begin if FThread <> nil then begin FThread.Terminate; application.WaitForThread(FThread); FThread.Destroy; end; inherited; end; procedure ttestthreadcontainer.Run; begin FThread := tmsethread.Create(@Execute); end; function ttestthreadcontainer.Execute(thread: tmsethread): integer; begin Sleep(3000); mainfo.tmWait.Enabled := FALSE; ShowMessage('Operation completed.'); result := 0; end; { tmainfo } procedure tmainfo.ButtonExecute(const sender: TObject); begin tmWait.Enabled := TRUE; FThreadContainer.Run; end; procedure tmainfo.FormCreate(const sender: TObject); begin FThreadContainer := ttestthreadcontainer.Create(); FBlink := FALSE; end; procedure tmainfo.TimerExecute(const sender: TObject); begin pbWait.Invalidate; FBlink := not FBlink; end; procedure tmainfo.PaintBoxPaint(const sender: twidget; const acanvas: tcanvas); begin if FBlink then acanvas.FillRect(MakeRect(0, 0, sender.bounds_cx, sender.bounds_cy), CL_BLUE); end; procedure tmainfo.FormDestroy(const sender: TObject); begin FThreadContainer.Free; end;
Hierarchy
- TObject
- tmsethread
- tmutexthread
- tsemthread
- teventthread
Overview
Fields
| Protected | feventlist: teventqueue; |
Methods
| Public | constructor create(const athreadproc: threadprocty; const afreeonterminate: boolean = false; const astacksizekb: integer = 0); overload; override; |
| Public | destructor destroy(); override; |
| Public | procedure terminate(); override; |
| Public | procedure postevent(event: tmseevent); |
| Public | procedure clearevents(); |
| Public | function waitevent(const timeoutus: integer = -1): tmseevent; |
| Public | function eventcount(): integer; |
Properties
| Public | property eventlist: teventqueue read feventlist; |
Description
Fields
| Protected | feventlist: teventqueue; |
|
This item has no description. | |
Methods
| Public | constructor create(const athreadproc: threadprocty; const afreeonterminate: boolean = false; const astacksizekb: integer = 0); overload; override; |
|
This item has no description. | |
| Public | destructor destroy(); override; |
|
This item has no description. | |
| Public | procedure terminate(); override; |
|
This item has no description. | |
| Public | procedure postevent(event: tmseevent); |
|
This item has no description. | |
| Public | procedure clearevents(); |
|
This item has no description. | |
| Public | function waitevent(const timeoutus: integer = -1): tmseevent; |
|
This item has no description. | |
| Public | function eventcount(): integer; |
|
This item has no description. | |
Properties
| Public | property eventlist: teventqueue read feventlist; |
|
This item has no description. | |
Generated by PasDoc 1.0.4.