-1

我使用下面的代码来执行我的程序

for(int i=0;i<100000000000000000000;i++)
{
//dosomething
}

我想让计算机在处理时仍然响应用户交互以避免系统阻塞。

4

2 回答 2

3

您可以使用Grand Central Dispatch。这就像 .NET 中的 BackgroundWorker/Task。Ray Wenderlich也有一个很棒的教程。

例如:

dispatch_queue_t q = dispatch_get_global_queue(0, 0);
dispatch_queue_t main = dispatch_get_main_queue();
dispatch_async(q, ^{
    // long running database operation
    dispatch_async(main, ^{

   });
});
于 2012-07-14T05:22:09.417 回答
0

用户界面在主应用程序线程上处理。看来您要的是多线程程序;在 Mac OS X 上有很多方法可以实现,包括直接使用 POSIX 线程(pthread_create()等)。

更多信息:http: //developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Multithreading/Introduction/Introduction.html%23//apple_ref/doc/uid/10000057i-CH1-SW1

于 2012-07-14T05:23:02.933 回答