还是个可可菜鸟,
我在我的应用程序的后台线程中执行了这个循环:
while (preProcessed == FALSE){}
这会在主线程任务完成时占用线程一两秒钟(涉及 webview - 因此需要主线程)。
它运行良好,应用程序已提交给 Apple,一切都很好。
现在,突然 - 它停止工作了。循环要么永远不会退出,要么永远不会启动,基本上应用程序此时只是默默地挂起。
即使我添加任意动作,例如
int idle_hands_etc = 0;
while (preProcessed == FALSE){ ++idle_hands_etc;}
什么都没发生..
但是,如果我将某些内容打印到输出控制台:
while (preProcessed == FALSE){ printf(".");}
它完美地工作。
我的问题是,到底发生了什么!其次,是什么改变了它的行为方式,因为它肯定不是我的应用程序。