RAD Studio VCL Reference
ContentsIndex
PreviousUpNext
TThread.StaticQueue Method

Asynchronously executes a method call within the main thread.

Pascal
class procedure StaticQueue(AThread: TThread; AMethod: TThreadMethod);
C++
__fastcall StaticQueue(TThread AThread, TThreadMethod AMethod);

StaticQueue causes the call specified by AMethod to be executed using the main thread, thereby avoiding multi-thread conflicts. The current thread is passed in the AThread parameter.  

If you are unsure whether a method call is thread-safe, call it from within the Synchronize or StaticQueue methods to ensure that it executes in the main thread.  

Unlike Synchronize, execution of the current thread is allowed to continue. The main thread will eventually process all queued methods.

Warning: Do not call StaticQueue from within the main thread. This can cause an infinite loop.
Note: StaticQueue simply calls Queue with the same parameters.
Note: You can also protect unsafe methods using critical sections or the multi-read exclusive-write synchronizer.
 

 

Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
What do you think about this topic? Send feedback!