iphone - iPhone多线程

标签 iphone multithreading sdk

iPhone开发:

我希望有一个无限循环不断检查NSMutableArray,如果[size> 0]拉第一个对象,对其进行处理,将其删除,等待.25秒,然后继续检查。

我希望我的GUI按钮添加此列表。有没有办法做到这一点?有没有办法通过在主线程中进行循环来做到这一点?

更新
我想我没有正确地问过这个问题。我正在使用AsyncSocket类发送telnet命令。我需要快速发送它们,因为它们曾经用于控制RC汽车,但是RC接收器有点慢。因此,我想降低iPhone发送命令的速度。现在我有按钮事件发送命令,但我想让事件将命令添加到列表/队列/数组。在与按钮单击并列的同时,我希望进程每隔.25秒检查一次队列并发送队列中的命令。

我的问题:

AsyncSocket不是线程安全的,所以我不能再有其他线程发送命令。文档阅读

If you find yourself on a thread which is different from the thread on which AsyncSocket is running, and you need to invoke a method on AsyncSocket, then you must use a method like performSelector:onThread: to ensure the method is invoked on AsyncSocket's thread (and thereby maintaining thread-safety)."



我不知道这意味着什么...
  • 上面的引用是什么意思?
  • 我想做什么需要多线程处理?
  • 最佳答案

    我建议研究Key Value Observing。这将允许您设置一个观察类,以便在向数组中输入条目时得到通知。

    它会比您将找到的标准教程难一些,最简单的是观察正在更新的属性。将元素添加到数组时,需要使用-willChange:valuesAtIndexes:forKey:-didChange:valuesAtIndexes:forKey:。如果您只需要听添加的项目,就足够了。但是,您可以查看ObservingOptions来真正获得更好的控制。

    在此处查看有关NSKeyValueObserving的更多信息:http://developer.apple.com/library/ios/#documentation/cocoa/Reference/Foundation/Protocols/NSKeyValueObserving_Protocol/Reference/Reference.html#//apple_ref/occ/cat/NSKeyValueObserving

    这种方法将使您不浪费任何周期来轮询更改。

    关于iphone - iPhone多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5479004/

    相关文章:

    ios - Swift如何将tableView移回GroundView标签

    iphone - Core Data 从其 objectID 取回子类 NSManagedObject

    iphone - 如何创建径向 UIView?

    Java 并发实践 - 示例 14.12

    iphone - iOS : Changing min SDK Version of App in Apple's Store

    iphone - Xcode iOS部署目标检查?

    当私有(private)实例变量超出范围时,Java 终止线程

    c# - 为什么ParameterizedThreadStart只允许对象参数?

    android - 修改按钮中的文本 - if 语句

    java - 解析 SQL 查询并在 Java 中返回列名和相应表名的解析器