在后台做某事

弯腰的

我有一个我的框架,该框架需要花费一些时间,当我尝试调用它的方法时,它实际上冻结了屏幕中0.5秒钟的运动。

我试图在后台调用它:

[self performSelectorInBackground:@selector(transmitNow:) withObject:nil];

-(void)transmitNow:(id)sender
{
     [instance sendWithData:data]; //takes time 

}

但它仍然需要相同的时间。有没有一种方法可以在后台启动此进程,从而不会停止主进程?

谢谢 。

面包MD

是。您可以使用NSOperationQueue和NSOperation来做到这一点。考虑以下代码:

NSOperationQueue* queue = [[NSOperationQueue alloc] init];
[queue addOperationWithBlock:
^{
     [instance sendWithData:data];
}];

这将创建一个NSOperationQueue,它实际上是一个后台线程。它将向该队列添加一个操作,该操作将完成,然后该线程将自动关闭并清理。

阅读NSOperations和NSOperationQueue以获得更多信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章