バックグラウンド ワーカーや .Net の TPL のように、UI スレッドをハングさせない方法で、Objective-C (iOS) で実行中のタスクをログに記録する方法を見つけようとしています。
この種の作業を、iOS 開発者のベスト プラクティスと見なされる保守可能な方法で処理する方法を探していますか?
バックグラウンド ワーカーや .Net の TPL のように、UI スレッドをハングさせない方法で、Objective-C (iOS) で実行中のタスクをログに記録する方法を見つけようとしています。
この種の作業を、iOS 開発者のベスト プラクティスと見なされる保守可能な方法で処理する方法を探していますか?
/クラスNSThread
や. _ コード例 (GCD):NSOperation
NSOperationQueue
GCD
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//background work
});
ここでそれについて読むことができます: Concurrency Programming Guide
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);
}
}