-1

以下のコードを使用してプログラムを実行しました

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

システムブロックを回避するために、処理時にコンピューターがユーザーの操作に応答するようにしたい。

4

2 に答える 2

3

グランドセントラルディスパッチをご利用いただけます。.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

ユーザー インターフェイスは、メイン アプリケーション スレッドで処理されます。あなたが求めているのはマルチスレッドプログラムのようです。pthread_create()POSIX スレッドを直接使用するなど (など) 、Mac OS X でこれを実現する方法は多数あります。

詳細: 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 に答える