iphone ios running in separate thread iphone ios running in separate thread multithreading multithreading

iphone ios running in separate thread


In my opinion, the best way is with libdispatch, aka Grand Central Dispatch (GCD). It limits you to iOS 4 and greater, but it's just so simple and easy to use. The code to do some processing on a background thread and then do something with the results in the main run loop is incredibly easy and compact:

dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{    // Add code here to do background processing    //    //    dispatch_async( dispatch_get_main_queue(), ^{        // Add code here to update the UI/send notifications based on the        // results of the background processing    });});

If you haven't done so already, check out the videos from WWDC 2010 on libdispatch/GCD/blocks.


The best way for the multithreading in iOS is using GCD (Grand Central Dispatch).

//creates a queue.dispatch_queue_t myQueue = dispatch_queue_create("unique_queue_name", NULL);dispatch_async(myQueue, ^{    //stuffs to do in background thread    dispatch_async(dispatch_get_main_queue(), ^{    //stuffs to do in foreground thread, mostly UI updates    });});


I would try all the techniques people have posted and see which is the fastest, but I think this is the best way to do it.

[self performSelectorInBackground:@selector(BackgroundMethod) withObject:nil];