Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
tipsandtricks [2019/10/03 14:00] – [Changing Position, RotationAngle or Scale] admintipsandtricks [2019/10/03 14:06] – [Threading] 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's 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]]
 +