On 05/07/2010 03:18 PM, Andrew Brunner wrote: > Ok. I'm familiar with Synchronize methods but wasn't sure if they were > actually executed via the Main Thread and could truly solve the GUI > concerns (especially on Linux but even on OSX and Windows). > That is what Synchronize has been invented for: Execute some of the thread code in the main thread.
When calling Synchronize the thread stop at this point. the synchronized method is scheduled to be executed in the main thread. When (after a possibly very long time) the main thread is ready to execute that method, it does so and after that wakes up the thread. Advantage: you don't need to bother about protecting resources used both by the main worker thread and the thread. Disadvantage: the worker thread might stop for a very long time. To prevent the thread from stopping, PostMessage() can be used and the "synchronized" Method now is defined by procedure ... message in of some Form. Disadvantage: you need to take care of protecting commonly used resources. -Michael -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
