一定間隔で常時監視

投稿者: | 2013/03/10

常時監視とインターバル

AppDelegate 上に用意したデータキューなどを常時監視させたい場合。

didFinishLaunchingWithOptions:内でdispatch_queue_t を用意して、裏で監視させます。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    BOOL flg = NO;	// 監視フラグ
    dispatch_queue_t gcd_queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_async(gcd_queue, ^{
        for (;;) {	// 条件なしのfor でぶん回し
            if ( flg ) {
                // フラグ = YES なら、ここを実行
            }
            else {
				// フラグ = NO なら、10秒の間隔を置いて、再度監視
                NSLog(@"Sleep Interval done...");
                [NSThread sleepForTimeInterval:10.0];
            }
        }
    });
    
    return YES;
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください