-(void)test
{
int i;
for (i=0;i < 1000000;i++)
{
//do lengthly operation
}
}
如何防止其GUI冻结?
答案 0 :(得分:5)
底线;不要阻塞主线程,因此不要阻止主事件循环。
现在,你可能产生一个线程。但这实际上并不是在Mac OS X上编写并发程序的正确方法。
相反,使用NSOperation and NSOperationQueue.它专门用于支持您的并发编程需求,它可以很好地扩展,并且NSOperationQueue紧密集成到系统中,以便它可以根据可用的系统资源控制并发(核心数,来自其他应用程序的CPU负载等比任何直接使用线程更有效。
答案 1 :(得分:0)
我会在一个单独的线程中使用NSThread
进行冗长的操作