1

バックグラウンド ワーカーや .Net の TPL のように、UI スレッドをハングさせない方法で、Objective-C (iOS) で実行中のタスクをログに記録する方法を見つけようとしています。

この種の作業を、iOS 開発者のベスト プラクティスと見なされる保守可能な方法で処理する方法を探していますか?

4

2 に答える 2

2

/クラスNSThreadや. _ コード例 (GCD):NSOperationNSOperationQueueGCD

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    //background work
});

ここでそれについて読むことができます: Concurrency Programming Guide

于 2012-07-21T18:58:44.750 に答える
1

GCDの場合は、次のテストを試してください。(AdamとMartin Rが提案しているように、Appleのドキュメントも参照してください。

- (IBAction)dispatchQPressed:(id)sender 
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        for (int i=0; i<1000; i++)
        {
            NSLog(@"Running in background thread concurrently: %i", i);
        }
    });

    for (int i = 0; i<200; i++)
    {
        NSLog(@"run in main thread:%i", i);
    }
}
于 2012-07-21T19:08:11.997 に答える