gpt4 book ai didi

iphone - DISPATCH_SOURCE_TYPE_TIMER 未触发

转载 作者:行者123 更新时间:2023-12-03 19:15:53 25 4
gpt4 key购买 nike

我正在全局队列上创建一个计时器,配置为从创建时间起 45 秒触发,但由于某种原因,它似乎根本没有触发。现在改成火也没有任何作用。

其余的应用程序有很多事情要做,所以可能有一些东西抢占了计时器的触发。

这就是计时器的创建方式:

dispatch_queue_t globalQueue = 
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0);

timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, globalQueue);
if (timer) {

// start 45 seconds for now
dispatch_time_t startTime = dispatch_time(DISPATCH_TIME_NOW, 45ull * NSEC_PER_SEC);
uint64_t interval = 15ull * NSEC_PER_SEC; // every 15 seconds, converted to nanosecs

// leeway:8 microseconds
dispatch_source_set_timer(timer, startTime, interval, 8000ull);

dispatch_source_set_event_handler(timer, block); // block is passed in

dispatch_resume(timer);

1)尝试调试/找出为什么它没有触发的好方法是什么?如果没有,

2) 有没有办法列出所有计划在特定时间点在队列上运行的给定任务?

应用程序完成的一些工作无法在模拟器上启动,因此我需要在测试设备本身上进行调试。

最佳答案

我也遇到过类似的问题。我的猜测是,您的计时器是局部变量,并且在您设置完毕后立即释放。您可以将其设为类属性。
看看here .

关于iphone - DISPATCH_SOURCE_TYPE_TIMER 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4754483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com