我經常收到一些我需要在其他線程上處理的回調函數,我想將這些處理方法排列在一個線程上,以便它們按順序運行。我不想使用原始的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