首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最有可能准时:+time timeWithTimeInterval或-performSelector:withObject:afterDelay:

最有可能准时:+time timeWithTimeInterval或-performSelector:withObject:afterDelay:
EN

Stack Overflow用户
提问于 2009-11-17 05:40:20
回答 3查看 530关注 0票数 1

我想只播放一个声音的时间很短,比声音文件的持续时间更短。因此,在我开始演奏的同时,我想排起队来完成一项能阻止声音的任务。

我看到了两种排队等待停止方法的选择: NSTimer和执行器选择:withObject:afterDelay:

有没有人知道哪一个最有可能准时触发,或者有更高的优先级?这并不是说我必须以毫秒的精度被调用,但是精确到0.1秒将是很好的。

增编:有人知道我在哪里能找到关于不同计时器和延迟任务优先级的文档吗?例如,以下人员将如何:

调用视图的tasks

  • performSelector

  • the在被称为
  • 之后调用视图的drawRect调用在setNeedsDisplay被称为
  • 后调用图层的绘图例程--任何其他延迟任务

在不同的线程中尝试这样做会有用吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-17 13:36:07

performSelector:withObject:afterDelay:将创建一个计时器来知道何时触发,因此这两种方法都应该是同样(不)可靠的。如果您的代码在主线程上执行昂贵的计算,并且不将控制返回给run循环,或者如果run循环必须处理大量事件,则计时器将无法按时启动。

票数 2
EN

Stack Overflow用户

发布于 2009-11-17 12:05:41

有一个NSTimer,但时间间隔要比你的声音要短得多。当你的计时器启动的时候,当你的声音响起时,你会数一数从你启动它到现在已经过去了多少时间。当时间超过了你设定的距离,你就停止了声音。

票数 1
EN

Stack Overflow用户

发布于 2009-11-17 05:42:47

根据我的理解,它们应该是一样的。然而,最好的解决办法是自己测试它。运行一系列测试,并记录确切的时间,然后看看哪个更接近。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1746826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档