我正在尝试解决一个我可以在我的iDevice上看到的问题,但不能在我的Mac上看到(显然)。
我在这一行标记了非常高的CPU活动:
data = [NSData dataWithData:UIImageJPEGRepresentation(image, 1.0)];
当我下载并显示高清图片(4-5Mo)时出现。
我的代码有什么问题或者我做的事情真的很糟糕吗?
修改 最后这条线并不重要。我的问题是我认为我的异步方法是在另一个线程中。事实并非如此。
我开始考虑新线程:
[NSThread detachNewThreadSelector:@selector(test:) toTarget:self withObject:myObject];
对于我的问题,它是最好的方法吗?
感谢您的帮助。
答案 0 :(得分:0)
基本上,只要有可能,就应该在后台线程上执行CPU密集型操作,以避免阻止应用程序中的任何用户交互。希望你能照顾好。
此外,您与图像构建/操作相关的过程往往会占用大量CPU资源。
答案 1 :(得分:0)
有一个解决方案here很好地解释了使用带有子级的NSManagedObjectContext
的非阻塞线程的问题。
对于另一个问题(高CPU活动)是由于这个非阻塞线程问题。