gpt4 book ai didi

ios - NSTimer 无法在 NSThread 函数中启动或运行?

转载 作者:行者123 更新时间:2023-11-28 19:11:09 24 4
gpt4 key购买 nike

我想使用 NSTimer 每 20 秒运行一个函数,但我将 NSTimer 放在 NSThread 函数中。代码是像这样:

-(void)func1
{
[NSThread detachNewThreadSelector:@selector(func2)
toTarget:self withObject:nil];
}
-(void)func2
{
[NSTimer scheduledTimerWithTimeInterval:3 target:self
selector:@selector(func3) userInfo:nil repeats:YES];
}
-(void)func3
{
//do something,but the function seems never be executed
}

所以问题是 func3 永远不会被 func2 中的 NSTimer 执行。有人说 NSTimer 只运行在 main thread.是真的吗?所以 NSTimer 不能在 NSThread 函数中启动吗?

最佳答案

在我看来,您的线程没有执行任何操作。定时器被安排作为线程运行循环的一部分进行检查。如果线程没有运行任何代码,那么它将不会通过它的运行循环。

这样想:

  • 开始话题
  • 开始线程运行循环
  • -func2
  • 结束运行循环
  • sleep 线程

您已在线程上安排了一个计时器,该线程在您设置计时器后立即进入休眠状态。没有运行循环;没有计时器触发。


更新

我的回答回答了问题,但没有给出解决方案。您希望达到的最终效果是什么?

关于ios - NSTimer 无法在 NSThread 函数中启动或运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15352301/

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