As I understand then, all drawRect methods must be made from the main thread. 
If I have a process running in the main thread, like an import thread which 
mike take 5 seconds, then it impossible for me to have a secondary thread which 
can update an NSView concurrently while the main thread is processing. Is this 
your understanding as well?

patrick

On Jan 31, 2010, at 4:58 PM, Kyle Sluder wrote:

> On Sun, Jan 31, 2010 at 4:19 PM,  <livinginlosange...@mac.com> wrote:
>> I have overlaid a transparent window over my NSDocument's main window. My 
>> intent is to draw textual notifications to it, such as "Processing...", "20 
>> things selected...". The idea is partially experimental, etc. I thought it 
>> would be neat to display a spinning icon in the a subclassed content view of 
>> the overlay window when the program is doing something lengthy like saving, 
>> exporting pdfs, etc. A created a new thread that would run for the duration 
>> of an operation. This thread would call drawrect which would draw my 
>> spinning icon.  I create the new thread before a length operation. I assume 
>> that the lengthy operation would occur on the main thread while the drawing 
>> operation happens on the secondary thread. Utlimately my drawrect method 
>> doesn't get called in the secondary thread. Am I going about this all wrong?
> 
> This is all well-trodden ground. A Google search for "NSView secondary
> thread" yields a bounty of helpful results. In summary: AppKit isn't
> thread-safe, except where explicitly documented. The general approach
> is to use -performSelectorOnMainThread: to have your secondary thread
> inform the main thread it should update the view.
> 
> --Kyle Sluder

_______________________________________________

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