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