2011-02-10 59 views
3

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

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

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

回答

4

是的,从你的定时器例程中调用useOnMainThread。从文档:

定时器与运行 循环一起工作。要有效地使用计时器,您应该知道 运行循环的运行方式 - 请参阅NSRunLoop和Threading 编程指南。特别注意 运行循环会保留它们的定时器,因此 可以在您将 添加到运行循环后释放定时器。

也是一个关于无效重复计时器警告:

一个重复的计时器,你必须 通过调用无效方法无效自己的计时器对象 。 调用此方法请求从当前的 运行循环中删除定时器 ;因此,您应该始终调用 的无效方法,其中安装的定时器的线程为