我使用下面的代码执行我的程序
for(int i=0;i<100000000000000000000;i++)
{
//dosomething
}
我希望在处理时让计算机仍然响应用户交互以避免系统阻塞。
答案 0 :(得分: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, ^{
});
});
答案 1 :(得分:0)
用户界面在主应用程序线程上处理。你似乎要求的是一个多线程程序;在Mac OS X上有很多方法可以实现这一点,包括直接使用POSIX线程(pthread_create()
等)。