> So: what should be done?

1.  Do the calculations in a sub-thread.

2.  Test a 'please stop' variable each time round the loop in that thread.

3.  Set this variable in the main thread when the user clicks the Stop 
button.

4.  To show progress, call performSelectorOnMainThread from the sub-thread. 
Do this every, say, 1000 loop iterations for efficiency.  That method (so to 
speak) is safe.  I'm not sure if other techniques are safe or not, but my 
guess is that they aren't.

The 'please stop' variable can be in a class object accessible to both 
threads, and can be accessed via getter and setter methods (which of course 
are each being called by a different thread) if you so choose.  Just be sure 
you have a reasonable grasp of the sort of issues doing this can involve 
before you write your code.  It is important, for example, that any objects 
the sub-thread might access do not go away until the thread has terminated.

http://developer.apple.com/documentation/Cocoa/Conceptual/Multithreading/Introduction/Introduction.html
 

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to