只是学习如何在线程之间分配任务,或异步调度。我知道任何“触及”视图的操作都必须在主线程上完成。怎么样:UIImageWriteToSavedPhotosAlbum
?我认为这可以在后台线程上完成,但我弄错了吗?
另外,如果应该在后台线程上完成,下面这两个调用之间是否有区别,因为一个保存 UIImage 而另一个保存视图中的 UIImage?
UIImageWriteToSavedPhotosAlbum(_someUIImage ,nil,nil,nil);
UIImageWriteToSavedPhotosAlbum(_imageView.image ,nil,nil,nil);
顺便说一句,我使用此设置在主线程中运行 HUD 并在后台运行任务,这是我的意图。
[HUD_code showMessage:@"saving image"];
dispatch_queue_t concurrentQueue =
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(concurrentQueue, ^{
UIImageWriteToSavedPhotosAlbum(someUIImage ,nil,nil,nil);
dispatch_async(dispatch_get_main_queue(), ^{
[HUD_code dismiss];
});
});