Re: Updating a progress bar from a code loop
Re: Updating a progress bar from a code loop
- Subject: Re: Updating a progress bar from a code loop
- From: Quincey Morris <email@hidden>
- Date: Tue, 10 Jun 2008 09:58:02 -0700
On Jun 10, 2008, at 03:17, Graham Cox wrote:
In this case I can do that... though out of curiosity I wonder if
there is a way to do this "cooperatively" on the main thread without
having to break up the loop doing the actual work. For example, in
Carbon one can run the event loop for a short period or just for one
event on each cycle of the loop - and this code can live in the
progress dialog controller, so it works transparently with respect
to the loop that drives the progress indicator. I'm not sure that
approach is considered "good" in this day and age though I used it a
lot on Mac OS 6/7/8/9. Just wondered if such an approach is feasible
in Cocoa.
Well, FWIW, to refresh the display and enable Esc and clicks on a
cancel button, what I've been using is:
- (BOOL) updateAndCheckIfCancelled {
NSEvent *event;
if (!progressCancelled)
while (event = [NSApp nextEventMatchingMask:NSAnyEventMask
untilDate:nil inMode:NSEventTrackingRunLoopMode dequeue:YES])
if (progressCancellable)
[NSApp sendEvent:event];
return progressCancelled;
}
called regularly through the loop, and it seems to work fine.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden