为了账号安全,请及时绑定邮箱和手机立即绑定

是不是就是说,只要创建Timer的线程不结束,Timer就不会被触发呢?求指教

是不是就是说,只要创建Timer的线程不结束,Timer就不会被触发呢?求指教

慕田峪9158850 2022-06-15 11:07:14
当NSTimer的回调函数被调用的时候,程序是创建一个新的线程吗?我写了以下一段测试代码,可是回调函数一直无法被触发:- (void)updateInterface:(id)sender{ a=[a stringByAppendingString:@"add string\n"]; [myTextView setStringValue:a]; return; }- (IBAction)getButtonPushed:(id)sender { NSTimer* renderTimer = [[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateInterface:) userInfo:nil repeats:YES]retain]; while(1){}}在调试的时候,程序走到while(1){}就无限制循环。而Timer却永远没有被触发,就是说updateInterface函数一直没有被调用。当我把while(1){}这行注销掉,Timer就会被触发,触发的时间是在getButtonPushed函数结束后。
查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

Timer和主程序是属于同一个线程的,并不相当于起了一个线程~~你的这个线程已经在while(1)句阻塞了,所以不会走到那里BTW: Timer不是新起的一个线程,记住这个就行了

查看完整回答
反对 回复 2022-06-20
  • 1 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信