You are using GCD for concurrency and you would like to know what the best way of working with UI-related APIs is.
UI-related tasks have to be performed on the main thread, so the
main queue is the only candidate
for UI task execution in GCD. We can use the
function to get the handle to the main dispatch queue.
There are two ways of dispatching tasks to the main queue. Both are asynchronous, letting your program continue even when the task is not yet executed:
Executes a block object on a dispatch queue.
Executes a C function on a dispatch queue.
cannot be called on the main queue because it will block the thread
indefinitely and cause your application to deadlock. All tasks
submitted to the main queue through GCD must be submitted
Let’s have a look at using the
function. It accepts two parameters:
The dispatch queue on which the task has to be executed.
The block object to be sent to the dispatch queue for asynchronous execution.
Here is an example. This code will display an alert in iOS to the user, using the main queue:
@"GCD is amazing!"