如何防止可可应用冻结?

时间:2010-01-06 06:30:55

标签: cocoa macos

-(void)test
{
  int i;
  for (i=0;i < 1000000;i++)
  {
    //do lengthly operation
  }
}

如何防止其GUI冻结?

2 个答案:

答案 0 :(得分:5)

底线;不要阻塞主线程,因此不要阻止主事件循环。

现在,你可能产生一个线程。但这实际上并不是在Mac OS X上编写并发程序的正确方法。

相反,使用NSOperation and NSOperationQueue.它专门用于支持您的并发编程需求,它可以很好地扩展,并且NSOperationQueue紧密集成到系统中,以便它可以根据可用的系统资源控制并发(核心数,来自其他应用程序的CPU负载等比任何直接使用线程更有效。

另请参阅Threaded Programming Guide

答案 1 :(得分:0)

我会在一个单独的线程中使用NSThread

进行冗长的操作