• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: [Q] Why is the threading and UI updating designed to be done only on a main thread?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Q] Why is the threading and UI updating designed to be done only on a main thread?


  • Subject: Re: [Q] Why is the threading and UI updating designed to be done only on a main thread?
  • From: Scott Ribe <email@hidden>
  • Date: Wed, 14 Mar 2012 11:40:32 -0600

On Mar 14, 2012, at 11:05 AM, Gary L. Wade wrote:

> To solve your thinking on this matter, conceptualize the background thread as a (M)odel object, the main thread a (V)iew object, and possibly an NSMutableArray of NSStrings each having an individual log message being a (C)ontroller object. By breaking your logic up accordingly, it should be more obvious why things are the way they are. A simple way to update the UI is to add a timer to your main thread that checks to see if the controller object has been changed; if so, it can update the UI. To accommodate a full UI thread and fit within a user's visual update time, a time interval of 1/120 second should be fine. Naturally, you'll want to lock the controller object while being updated by the model or being (quickly) read by the view.

For something that is frequently/constantly updating that is about perfect.

Now for something that does not update frequently, a perfectly good option is to queue an event on to the main thread somehow. There are lots of ways to do this--the easiest for a one-off, and arguably dirtiest because of the coupling, is to use performSelectorOnMainThreadWithObjectWaitForCompletion: NO (yeah, I misspelled it, not looking at the reference right now), where the update can just be an object that is passed from bg to fg, and *not* shared otherwise.

--
Scott Ribe
email@hidden
http://www.elevated-dev.com/
(303) 722-0567 voice





_______________________________________________

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

References: 
 >[Q] Why is the threading and UI updating designed to be done only on a main thread? (From: JongAm Park <email@hidden>)
 >Re: [Q] Why is the threading and UI updating designed to be done only on a main thread? (From: "Gary L. Wade" <email@hidden>)

  • Prev by Date: Re: [Q] Why is the threading and UI updating designed to be done only on a main thread?
  • Next by Date: Re: Uncaught Exception: NSUnknownKeyException
  • Previous by thread: Re: [Q] Why is the threading and UI updating designed to be done only on a main thread?
  • Next by thread: Re: [Q] Why is the threading and UI updating designed to be done only on a main thread?
  • Index(es):
    • Date
    • Thread