##
saveThreadContext;
restoreThreadContext;
##
##
#######my $DataQueue = Thread::Queue->new();
...
#wait for data, print data to GUI textbox
#######while(Win32::GUI::DoEvents() != -1) {
####### my $tmptxt = $DataQueue->dequeue();
####### $main_text_window->Append($tmptxt);
#######}
Win32::GUI::Dialog();
sub mainloop {
while (1) {
#lots of page getting and number crunching goes here
########## $DataQueue->enqueue("some data");
$main_text_window->Append($tmptxt);
}
}