Iphone 类,该类在线程中处理任务
我想创建一个类,只要它的一个实例是活动的,它就可以让一个线程(工作线程)继续运行,当有人对它调用一个方法时-Iphone 类,该类在线程中处理任务,iphone,objective-c,multithreading,Iphone,Objective C,Multithreading,我想创建一个类,只要它的一个实例是活动的,它就可以让一个线程(工作线程)继续运行,当有人对它调用一个方法时-performTaskWithData:(NSData*)data-它就应该在它的工作线程中处理这个数据。 如果在执行操作时发送了其他数据,则应将此新数据/操作排队,直到完成前一个处理 我需要这个helper类的每个实例包含一个工作线程(即,同一个线程应该处理所有处理) 我该怎么做呢? NSRunLoop?同步对正在传递的数据块的访问?您可以直接使用NSThreads和run循环来执行此操
performTaskWithData:(NSData*)data
-它就应该在它的工作线程中处理这个数据。如果在执行操作时发送了其他数据,则应将此新数据/操作排队,直到完成前一个处理 我需要这个helper类的每个实例包含一个工作线程(即,同一个线程应该处理所有处理) 我该怎么做呢?
NSRunLoop?同步对正在传递的数据块的访问?您可以直接使用NSThreads和run循环来执行此操作。但是,我会考虑使用S,每个类中的一个实例,并将队列的最大并发设置为1。您的
performTaskWithData:
只需将NSOperation
子类的一个新实例添加到队列中即可。从iOS4开始,为多线程编程提供了迄今为止最简单、最强大的接口
如果你是一个注册开发者,去看一些2010年的WWDC视频。一开始它很吓人,但实际上它非常简单而且很好。这能保证每个操作都使用相同的线程吗?不,它保证任务一定是按顺序执行的,但不一定是在相同的线程上。确切的线程不再重要。与上面的问题相同-这是否保证对队列中的每个操作使用相同的线程?您不必考虑这个问题。您有排队的进程,您可以讨论这些进程。去研究一下。