我想知道如何在单独线程中运行方法?类别&方法参考。谢谢。触发在单独线程中运行的方法
2
A
回答
3
找到了答案(您可以使用这些语句来实现这一点):
[NSThread detachNewThreadSelector:@selector(myThreadMainMethod:) toTarget:self withObject:nil];
OR
NSThread *myThread = [[NSThread alloc] initWithTarget:self
selector:@selector(myThreadMainMethod:)
object:nil];
[myThreadstart];
4
另一种方法是
[someObject performSelectorInBackground:@selector(someSelector:)
withObject:nil];
克里斯。
2
如果您已经创建了一个NSThread
和你扶住NSThread
对象,随后就可以发送更多的消息,该线程使用进行:
–[NSObject performSelector:onThread:withObject:waitUntilDone:]
1
你需要一个新的自动释放池处理该线程中的所有自动释放。主线程有一个在你到达代码之前由框架自动创建的线程。
还要确保您是否在做任何接口更新,并将其委托给主线程。更新可能会或可能不会工作,如果你不
[self performSelectorOnMainThread:@selector(someSelector:)
withObject:passedInObject waitUntilDone:NO];
chris。
2
找到了答案,以我自己的问题:
当我开始在 单独的线程的新方法,为什么我需要在 方法的 NSAutoreleasePool对象?如果我不添加它,我会在日志中获得一个 Pool Stack。
自动释放池和线程(MemoryMgmt.pdf从Apple.com):
在Cocoa应用程序中的每个线程 维护自己的 NSAutoreleasePool对象的堆栈。当 线程终止时,它会自动释放与其自身关联的所有自动释放池 。自动发布 池自动创建和 销毁主线程 应用程序基于应用程序 套件,所以你的代码通常不会 必须在那里处理它们。如果您在 应用套件的主线程 以外拨打可可电话,您需要创建自己的 自动释放池。如果您正在编写仅基金会 应用程序或如果您分离线程,则这种情况是 。
相关问题
- 1. SQL触发器是否在单独的线程中运行?
- 2. 有没有办法在MySQL的单独线程中运行触发器?
- 3. 异步方法是否在单独的线程中运行?
- 4. 如何在单独的线程中运行方法
- 5. 在单独的线程中运行VCL
- 6. 方法在单独的线程中运行 - 如何调用线程
- 7. SQL Server在线程中触发并运行CLR方法
- 8. 另一类中带参数的单独线程运行方法
- 9. 如何在Android的单独线程上运行导入方法?
- 10. “在单独的线程中运行实例”的最简单方法是什么?
- 11. 如何运行触发单独的表
- 12. 运行在单独的线程
- 13. ios:requestWithURL方法发生在单独的线程中吗?
- 14. pyqt多线程 - 无法同时运行单独的线程?
- 15. 在单独线程上运行ALAssetLibrary块
- 16. 在单独的线程中冲突执行相同的方法?
- 17. Django unittesting:model.all()查询集在单独线程中运行的方法是空的
- 18. Android:异步在一个单独的线程中运行一个方法
- 19. 如何在单独线程中的操作完成时触发?
- 20. BeginInvoke()是否运行单独的线程?
- 21. 在单独的线程中运行窗体表单
- 22. jBPM - 在单独的线程中运行进程
- 23. 在Qt中运行单独的进程或线程
- 24. Python:在类方法中运行线程
- 25. 在线程中运行类方法(python)
- 26. Task.Continuewith中的新任务(在单独的线程上运行)
- 27. 在线程运行方法中运行CryptoPP FileSink无法杀死Qt线程
- 28. 线程方法未运行?
- 29. 在单独的线程中运行SimpleXMLRPCServer并关闭
- 30. Google Analytics(分析)是否在单独的线程中运行?