我有一个我的框架,该框架需要花费一些时间,当我尝试调用它的方法时,它实际上冻结了屏幕中0.5秒钟的运动。
我试图在后台调用它:
[self performSelectorInBackground:@selector(transmitNow:) withObject:nil];
-(void)transmitNow:(id)sender
{
[instance sendWithData:data]; //takes time
}
但它仍然需要相同的时间。有没有一种方法可以在后台启动此进程,从而不会停止主进程?
谢谢 。
是。您可以使用NSOperationQueue和NSOperation来做到这一点。考虑以下代码:
NSOperationQueue* queue = [[NSOperationQueue alloc] init];
[queue addOperationWithBlock:
^{
[instance sendWithData:data];
}];
这将创建一个NSOperationQueue,它实际上是一个后台线程。它将向该队列添加一个操作,该操作将完成,然后该线程将自动关闭并清理。
阅读NSOperations和NSOperationQueue以获得更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句