| [Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] | 
[Properties (by Name)] [Methods (by Name)] [Events (by Name)]
Abstract Thread class.
Source position: classesh.inc line 1705
type TThread = class  | 
||
public  | 
||
Type  | 
||
TSystemTimes = record  | 
  | 
Record for returning processor usage  | 
IdleTime: QWord;  | 
  | 
Processor idle time  | 
UserTime: QWord;  | 
  | 
User code execution time  | 
KernelTime: QWord;  | 
  | 
Kernel (OS) code execution time  | 
NiceTime: QWord;  | 
  | 
Nice (reduced priority) code execution time  | 
end;  | 
||
protected  | 
||
procedure Execute; virtual; abstract;  | 
  | 
Execute method. Must be overridden in a descendant thread.  | 
procedure Synchronize();  | 
  | 
Synchronizes the thread by executing the method in the main thread.  | 
procedure Queue();  | 
  | 
Queue a method for execution in the main thread  | 
public  | 
||
constructor Create();  | 
  | 
Creates a new thread.  | 
destructor Destroy; override;  | 
  | 
Destroys the thread object.  | 
class function CreateAnonymousThread();  | 
  | 
Execute code in an anonymous thread  | 
class procedure NameThreadForDebugging();  | 
  | 
Set a thread name  | 
class procedure SetReturnValue();  | 
  | 
Set return value of a thread  | 
class function CheckTerminated;  | 
  | 
Check if the current thread has finished executing.  | 
class procedure RemoveQueuedEvents();  | 
  | 
Remove methods scheduled for execution from queue  | 
class procedure SpinWait();  | 
  | 
Prevent thread execution in a spin-wait loop  | 
class procedure Sleep();  | 
  | 
Prevent thread execution  | 
class procedure Yield;  | 
  | 
Yield execution to other threads  | 
class procedure GetSystemTimes();  | 
  | 
Return CPU stats  | 
class function GetTickCount; deprecated ;  | 
  | 
Return tick count (32-bit)  | 
class function GetTickCount64;  | 
  | 
Return tick count (64-bit)  | 
class function ExecuteInThread();  | 
  | 
Execute a method or static procedure in a thread  | 
procedure AfterConstruction; override;  | 
  | 
Code to be executed after construction but before execute.  | 
procedure Start;  | 
  | 
Starts a thread that was created in a suspended state.  | 
procedure Resume; deprecated ;  | 
  | 
Resumes the thread's execution. Deprecated, see TThread.Start  | 
procedure Suspend; deprecated ;  | 
  | 
Suspends the thread's execution.  | 
procedure Terminate;  | 
  | 
Signals the thread it should terminate.  | 
function WaitFor;  | 
  | 
Waits for the thread to terminate and returns the exit status.  | 
property CurrentThread: TThread; [r]  | 
  | 
Return current thread instance  | 
property ProcessorCount: LongWord; [r]  | 
  | 
Return the processor count for this system  | 
property IsSingleProcessor: Boolean; [r]  | 
  | 
Is the current system single processor or not  | 
property FreeOnTerminate: Boolean; [rw]  | 
  | 
Indicates whether the thread should free itself when it stops executing.  | 
  | 
Returns the thread handle.  | 
|
property ExternalThread: Boolean; [r]  | 
  | 
Is the thread instance an external thread ?  | 
property Priority: TThreadPriority; [rw]  | 
  | 
Returns the thread priority.  | 
property Suspended: Boolean; [rw]  | 
  | 
Indicates whether the thread is suspended.  | 
property Finished: Boolean; [r]  | 
  | 
Has the thread finished executing  | 
  | 
Returns the thread ID.  | 
|
property OnTerminate: TNotifyEvent; [rw]  | 
  | 
Event called when the thread terminates.  | 
property FatalException: TObject; [r]  | 
  | 
Exception that occurred during thread execution  | 
end;  | 
  | 
Abstract Thread class.  | 
|
| | | ||
TObject  | 
The TThread class encapsulates the native thread support of the operating system. To create a thread, declare a descendant of the TThread object and override the Execute method. In this method, the tthread's code should be executed. To run a thread, create an instance of the tthread descendant, and call it's execute method.
It is also possible to simply execute a method or static procedure in a thread using the TThread.ExecuteInThread class method.
  | 
Thread error exception.  | 
|
  | 
Execute method. Must be overridden in a descendant thread.  | 
|
  | 
Execute a method or static procedure in a thread  |