iphone - GCD : How to change timer fire interval

标签 iphone ios objective-c ipad grand-central-dispatch

无论如何,这听起来可能是一个新手问题,我对 GCD 很陌生

我有以下代码:

int interval = 2;
int leeway = 0;

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
if (timer) {
    dispatch_source_set_timer(timer, dispatch_walltime(DISPATCH_TIME_NOW, NSEC_PER_SEC * interval), interval * NSEC_PER_SEC, leeway);
    dispatch_source_set_event_handler(timer, ^{
        [self someMethod];
    });
    dispatch_resume(timer);
}

someMethod 在哪里:

- (void)someMethod
{
    NSLog(@"Thread 1");
}

如何在 someMethod 中更改 timer 的触发间隔属性?

最佳答案

我自己得到了答案,用新的间隔值调用 dispatch_source_set_timer 就足够了

关于iphone - GCD : How to change timer fire interval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11070026/

相关文章:

ios - NSURL 类似于 CFURLCreateCopyAppendingPathComponent?

ios - 如何在 ImageView Swift 中显示裁剪后的图像

ios - 如何在 iPhone UILabel 中设置字距调整

iphone - iOS 从 NSUserDefaults 调用电话号码

iphone - 检测 UITableViewCell 的拖动事件

iphone - 带有导航栏和 View Controller 的自动布局 (iOS 7)

ios - 本地通知 15 分钟间隔问题

objective-c - 从 UITextField 单击事件 MonoTouch 在 UIDatePicker 中选择日期

iphone - 通过 "substringToIndex"在 UserDefaults 中找到特殊键

iphone - HTML5 iPhone动态缓存图片