2013-06-19 50 views
1

我从几个后台线程呼叫dispatch_async(dispatch_get_main_queue()。但是,偶尔会发现调度块中的代码未执行。这可能是因为我异步调度和线程退出主队列可以执行代码之前?未收到随机主队列发送

回答

1

你有没有尝试过在你的代码片段的开头放置一个NSLog以确保它没有执行?有时候,具有错误逻辑的if语句会预先终止您的代码。 (来自我过去的经验;))

1

dispatch_async()调用返回的那一刻,调用它的线程是否随后退出并不重要 - 可以这么说“请求在系统中”!那些“偶然”的情况正在发生。你的程序是否有一个运行循环或者在其主函数结尾处调用dispatch_main()?不清楚这是否是您描述的Cocoa/iOS/POSIX应用程序。