> I am creating a program in squeak where I can update stock info
> from the web. I need a way to use a thread so that i can use a
> delay that last 24 hours and not lock up the gui..
No problem.
delay := Delay forSeconds: 60 * 60 * 24.
[
delay wait.
"now do whatever"
] forkAt: Processor userBackgroundPriority.
Note, though, that you can't do UI stuff from a background thread
(Squeak calls them Processes) safely.
There are safe ways to do it, though:
1. You can set up a SharedQueue between your background Process and
your UI Morph. The Morph can then check the queue in its #step method
(check to see if anything is on the queue first, so you don't hang
the UI).
2. You can post a message or block to be evaluated from the UI
process:
WorldState addDeferredUIMessage: [ "do something here" ].
Actually, instead of a block you could use any object that responds to
#value.
For instance:
WorldState addDeferredUIMessage: (MessageSend receiver: myMorph
selector: #color: arguments: { Color red }).