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];