[Pharo-project] addDeferredUIMessage: Documentation
I want to add a good comment to addDeferredUIMessage:. I know we use it whenever we're updating Morphic from a background thread, but I've read stuff saying to use it when Morphic is not in a "sane" state. When, if ever, would you call addDeferredUIMessage: from the UI thread? I posted the following to the Squeak list 2 years ago.... I'm trying to add some documentation to addDeferredUIMessage:. What's a good summary on this method? I collected the following snippets from the web... If you want to run something that accesses the Morphic UI, even though you are not running from somewhere that the UI is in a sane state, you should normally use addDeferredUIMessage:. Otherwise, you can put Morphic into extremely confused states.... Per Ned Konz @ http://wiki.squeak.org/squeak/528: Deferred UI messages are processed in the middle of the Morphic event loop, just after responding to events, and before doing other step methods and displaying the world. Look for implementors of #addDeferredUIMessage:, look at the one in WorldState, look for senders of #deferredUIMessages, and you'll see WorldState>>runStepMethodsIn: which empties the queue. And it's called from doOneCycleNowFor: which is the body of the main Morphic event loop. Per http://wiki.squeak.org/squeak/5689: If you want to run something that accesses the Morphic UI, even though you are not running from somewhere that the UI is in a sane state, you should normally use addDeferredUIMessage:. Otherwise, you can put Morphic into extremely confused states.... Per Wilhelm K Schwab @ http://forum.world.st/Fwd-MouseOverHandler-td1300474.html#a1300474: provides a clean way to interact with the GUI from background threads Per http://www.visoracle.com/squeak/faq/containerless.html: As it is now, it's quite simple to put long-running computations in background threads; you just don't let the background threads call methods directly on Morphs. We have addDeferredUIMessage: to queue up action from the background threads for later execution in the UI thread during the next window cycle. Sean -- View this message in context: http://forum.world.st/addDeferredUIMessage-Documentation-tp4631251.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
On Mon, May 21, 2012 at 03:46:21PM -0700, Sean P. DeNigris wrote:
I want to add a good comment to addDeferredUIMessage:. I know we use it whenever we're updating Morphic from a background thread, but I've read stuff saying to use it when Morphic is not in a "sane" state.
In Squeak: addDeferredUIMessage: valuableObject "Arrange for valuableObject to be evaluated at a time when the user interface is in a coherent state."
When, if ever, would you call addDeferredUIMessage: from the UI thread?
I posted the following to the Squeak list 2 years ago....
I'm trying to add some documentation to addDeferredUIMessage:. What's a good summary on this method?
I collected the following snippets from the web...
If you want to run something that accesses the Morphic UI, even though you are not running from somewhere that the UI is in a sane state, you should normally use addDeferredUIMessage:. Otherwise, you can put Morphic into extremely confused states....
Per Ned Konz @ http://wiki.squeak.org/squeak/528: Deferred UI messages are processed in the middle of the Morphic event loop, just after responding to events, and before doing other step methods and displaying the world. Look for implementors of #addDeferredUIMessage:, look at the one in WorldState, look for senders of #deferredUIMessages, and you'll see WorldState>>runStepMethodsIn: which empties the queue. And it's called from doOneCycleNowFor: which is the body of the main Morphic event loop.
Per http://wiki.squeak.org/squeak/5689: If you want to run something that accesses the Morphic UI, even though you are not running from somewhere that the UI is in a sane state, you should normally use addDeferredUIMessage:. Otherwise, you can put Morphic into extremely confused states....
Per Wilhelm K Schwab @ http://forum.world.st/Fwd-MouseOverHandler-td1300474.html#a1300474: provides a clean way to interact with the GUI from background threads
Per http://www.visoracle.com/squeak/faq/containerless.html: As it is now, it's quite simple to put long-running computations in background threads; you just don't let the background threads call methods directly on Morphs. We have addDeferredUIMessage: to queue up action from the background threads for later execution in the UI thread during the next window cycle.
Sean
-- View this message in context: http://forum.world.st/addDeferredUIMessage-Documentation-tp4631251.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
participants (2)
-
David T. Lewis -
Sean P. DeNigris