我经常收到一些我需要在其他线程上处理的回调函数,我想将这些处理方法排列在一个线程上,以便它们按顺序运行。我不想使用原始的NSThread(因为工作太多),也不想使用GCD(因为需要支持iOS 3.1)。开始查看NSOperation,但需要继承,传递所需的数据等。然后开始考虑runLoops ......无论如何,实现这个任务的便捷方式是什么?如何在其他线程上排列我的方法回调?
0
A
回答
1
NSOperation比运行循环更容易设置。你不会说你的回调是什么。它们是否起作用?选择?块?对象?
您的NSOperation子类只需要覆盖main并提供一种将回调传递给操作的方法。
@interface MyOperation : NSOperation
{
@private
CallbackType callback; // is e.g. a function pointer
void* context; // a parameter for the callback as an example
}
-(id) initWithCallback: (CallbackType) newCallback;
andContext: (void*) newContext;
@end
@implementation MyOperation
-(id) initWithCallback: (CallbackType) newCallback
{
self = [super init];
if (self != nil)
{
callback = newCallback;
context = newContext;
}
return self;
}
-(void) main
{
callback(context);
}
@end
+0
我正在使用套接字流,并且我正在调用 - (void)流:(NSStream *)theStream handleEvent:(NSStreamEvent)当从流中读取数据时的streamEvent。我想将读取流的处理放入队列中。但我需要通过(有一个处理程序当前theStream,指向声明的inputStream和outputStream,传递缓冲区(NSMutableData)。 – Centurion 2012-03-02 16:19:15
相关问题
- 1. 从其他线程回调
- 2. 如何从其他方法调用返回是其他方法的输入?
- 3. 如何删除的方法有回调或以其他方式
- 4. 其他类的线程方法?
- 5. 如何在其他线程上调试异常?
- 6. 在其他线程上执行方法的同步
- 7. 在其他线程中调用方法QT/C++
- 8. 如果我无法从其他线程调用UIKit,我该如何清理Dispose?
- 9. 如何从主线程上的线程调用方法?
- 10. 如何从C#中的其他线程调用线程?
- 11. 在C#或.NET中,是否有办法阻止其他线程调用特定线程上的方法?
- 12. 如何在其他方法
- 13. ActiveMQ OnMessage()方法阻止其他线程
- 14. 在后台线程上不会调用FSCopyObjectAsync回调方法
- 15. 如何在其他元素上调用方法?
- 16. 如何调用其他EAR bean方法
- 17. 如何使用线程,互斥或其他方式管理回调函数
- 18. 如何在以下上下文中调用具有相同名称的其他方法的其他方法
- 19. 如何从其他线程
- 20. Android如何在我的线程上执行回调?
- 21. 如何在其他方法之前调用方法
- 22. 如何在java中使用其他方法调用Graphics2D方法?
- 23. 如何制作调用其他类的方法的java程序?
- 24. 如何在方法中调用线程
- 25. WCF:在IOCP线程上执行的单向回调方法?
- 26. iPhone SDK后台线程调用其他方法
- 27. 如何从我的其他类调用方法
- 28. 如何调用karma unittest上的其他方法?
- 29. 如何以其他方法调用并返回数组数据
- 30. 调用外部方法实际上调用其他方法
线程从来不简单。使用它们时,你总是需要做一些工作。 – v1Axvw 2012-03-02 15:32:23