这样做的正确方法是什么?NSTimer
文档是这样说的:
特别注意事项
您必须从安装了计时器的线程发送此消息。如果您从另一个线程发送此消息,与计时器关联的输入源可能不会从其运行循环中删除,这可能会阻止线程正确退出。
既然GCD
不能保证串行队列总是在同一个线程上运行块,那么确保您NSTimer
在同一个线程上调度和无效的正确方法是什么?
编辑:
根据以下答案的建议,我创建了MSWeakTimer
(https://github.com/mindsnacks/MSWeakTimer),这是一个自定义计时器实现GCD
,可以从任何队列中使用。