2013-05-14 36 views
4

dispatch_main函数用于使主线程启动处理块分派到主队列。所以,dispatch_main是一种运行循环,它不返回,在处理已排队的块之后,等待其他块被提交到主队列。如果从主线程外部调用dispatch_main,会发生什么情况?

那么,如果从主线程外部调用dispatch_main会发生什么?如果主线程正在处理另一个函数,是否中断以允许主线程处理排队的块?是否允许从主线外部调用dispatch_main

回答

8

dispatch_main()断言当从主线程外调用并放弃您的进程时,它只能从主线程调用。

dispatch_main()其实只是伪装的pthread_exit()(参见implementation):它将主队列变成普通的串行调度队列,然后终止主线程。

从这一点开始,主队列将由按需的工作队列线程提供服务,就像任何其他调度队列一样。

相关问题