[fpc-pascal] Current TThread

michael.vancanneyt at wisa.be michael.vancanneyt at wisa.be
Tue Dec 21 14:59:08 CET 2010

On Tue, 21 Dec 2010, Mattias Gaertner wrote:

> On Tue, 21 Dec 2010 14:29:36 +0100 (CET)
> michael.vancanneyt at wisa.be wrote:
>> On Tue, 21 Dec 2010, Mattias Gaertner wrote:
>>> Hi,
>>> How to get the current TThread instance?
>> There is no documented method.
> Strange.
> Am I really the first needing this?

I never needed such a method, and I use threads extensively :-)

>>> For example: I created a TThread and called a function, which calls a
>>> function .... One of those sub functions needs to call
>>> TThread.Synchronize, which needs as parameter the current TThread.
>> Pass on the TThread instance.
> You mean as parameter?


> Some functions are predefined events. That means I call them and they
> call me back. I would like to avoid adding everywhere another parameter.

I understand that. Well, you could create an event object for the event

>> You could use GetCurrentThreadID and a lookup list.
> What about using a
> threadvar CurrentThread: Thread;
> ?
> TThread could set this in the constructor.

This could be done, but will give errors for externally created threads.

But you can easily do this for your own thread objects.

> BTW, you can call Synchronize for another thread than the current.
> Is that allowed?

It's a method like any other. Why not ?


More information about the fpc-pascal mailing list