-1

Can anyone tell me how to implement background execution in iOS .like i have to call a Webservice in background so it doesn't interrpt the main UI.

  • Can you please tell how are you calling your web service? Are you using maybe AFNetworking? Some code for example. – Flipper May 19 '16 at 10:13

4 Answers4

0

use following code

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    //Do background work

    dispatch_async(dispatch_get_main_queue(), ^{
        //Update UI
    });
});
Parth Bhuva
  • 857
  • 6
  • 26
0

I suggest you can write a service class with completion block (closure) that call your webservice. And then use GCD dispatch_async to call your service. So that the function call will be run in a background instead of main thread.

And update the UI in the completion block.

For GCD tutorial, you can refer to https://www.raywenderlich.com/60749/grand-central-dispatch-in-depth-part-1

PrimaryChicken
  • 963
  • 1
  • 8
  • 29
0

You can use this code:

dispatch_async(backgroundQueue, ^{
    int result = <some really long calculation that takes seconds to complete>;

    dispatch_async(dispatch_get_main_queue(), ^{
        [self updateMyUIWithResult:result];
    });    
});

}

neha
  • 167
  • 2
  • 11
0

Here is a simple solution for using background thread and main thread.

Hope it helps you.

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0),^{

   //do your web service calls to not to disturb main thread.

    dispatch_async(dispatch_get_main_queue(), ^{

       //here you can do what you want with main thread
       //once you got data you can get it on to main thread and execute the operation

   });
  });
Santo
  • 1,611
  • 3
  • 17
  • 37