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