NSTimer并在主线程上执行选择器

时间:2011-02-10 07:40:35

标签: iphone

是否可以运行nstimer在主线程上调用的选择器?

NSTimer是在它自己的线程中产生的。

我的结构是一个线程用nstimer调用一个方法,nstimer调用一个做一些更新的方法,但是我需要在主线程上进行这些更新。解决办法是什么?添加其他方法并说出performOnMainThread

1 个答案:

答案 0 :(得分:4)

是的,从您的计时器例程中调用use performOnMainThread。来自文档:

  

计时器与run一起工作   循环。要有效地使用计时器,你   应该知道如何运行循环   操作 - 参见NSRunLoop和线程   编程指南。请特别注意   运行循环保留其计时器,所以   你有可以释放计时器   将它添加到运行循环中。

还有一个关于使重复计时器无效的警告:

  

对于重复计时器,你必须   自己使计时器对象无效   通过调用其invalidate方法。   调用此方法请求   从当前删除计时器   运行循环;结果,你应该   总是从中调用invalidate方法   与计时器相同的线程   安装