以下のコードを使用してプログラムを実行しました
for(int i=0;i<100000000000000000000;i++)
{
//dosomething
}
システムブロックを回避するために、処理時にコンピューターがユーザーの操作に応答するようにしたい。
以下のコードを使用してプログラムを実行しました
for(int i=0;i<100000000000000000000;i++)
{
//dosomething
}
システムブロックを回避するために、処理時にコンピューターがユーザーの操作に応答するようにしたい。
グランドセントラルディスパッチをご利用いただけます。.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, ^{
});
});
ユーザー インターフェイスは、メイン アプリケーション スレッドで処理されます。あなたが求めているのはマルチスレッドプログラムのようです。pthread_create()
POSIX スレッドを直接使用するなど (など) 、Mac OS X でこれを実現する方法は多数あります。