Objective-C dispatch_after有时比指定的更早执行

时间:2018-01-31 23:08:39

标签: ios objective-c xcode queue grand-central-dispatch

我有一些Objective-C代码需要在指定时间后触发。我一直在使用下面的代码,95%的时间,它的效果很好。但是,有时代码会提前执行 。比如5秒而不是60秒。它是完全不一致的,我不能故意这样做。知道是什么原因造成的吗?

FALSE

1 个答案:

答案 0 :(得分:1)

我有同样的问题,我的解决方案是:

dispatch_time_t delayTime = dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC);
dispatch_after(delayTime, dispatch_get_main_queue(), ^(void){
    // YOUR CODE HERE
});

希望这对你也有用。