Macos 如果从主线程外部调用dispatch_main,会发生什么情况?

Macos 如果从主线程外部调用dispatch_main,会发生什么情况?,macos,grand-central-dispatch,Macos,Grand Central Dispatch,dispatch\u main函数用于使主线程开始处理分派到主队列的块。因此,dispatch\u main是一种运行循环,它不会返回,并且在处理已经排队的块之后,等待其他块提交到主队列 那么,如果从主线程外部调用dispatch\u main,会发生什么?如果主线程正在处理另一个函数,它是否会被中断以允许主线程处理排队的块?允许从主线程外部调用dispatch\u main吗?dispatch\u main()断言当从主线程外部调用并中止进程时,只能从主线程调用它 dispatch\u mai

dispatch\u main
函数用于使主线程开始处理分派到主队列的块。因此,
dispatch\u main
是一种运行循环,它不会返回,并且在处理已经排队的块之后,等待其他块提交到主队列

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

dispatch\u main()
断言当从主线程外部调用并中止进程时,只能从主线程调用它

dispatch\u main()


从那时起,主队列将由一个按需工作队列线程提供服务,就像任何其他调度队列一样。

这里有一个到特定提交时的
dispatch\u main()
实现的稳定链接。答案中的一个随着提交的添加而更改。