Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
tipsandtricks [2019/10/03 14:00] – [Changing Position, RotationAngle or Scale] admintipsandtricks [2019/10/03 14:05] – [Changing Position, RotationAngle or Scale] admin
Line 43: Line 43:
 end; end;
 </file> </file>
 +
 +==== Threading ====
 +
 +It is not uncommon to use a thread to compute visual property values. But because FMX (and also Gorilla3D) only runs in main thread, we need to synchronize somehow.
 +
 +Synchronization needs to be threadsafe, so everyone uses TThread.Synchronize(nil, DoSync) inside of its thread.
 +That okey for many applications, but the better way is to use messaging or TThread.Queue(nil, DoSync) for this job.
 +
 +While "Synchronize" blocks the application to force updating with main thread, "Queue" instead updates the app when there is time for. For further information take a look at: [[http://docwiki.embarcadero.com/Libraries/Rio/en/System.Classes.TThread.Queue]]
 +