| [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 1589
| 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 |