このような呼び出しはスレッドセーフと見なされますか? UIImageを作成するだけで、UIの更新はありません。これに関するドキュメントが見つかりません。
UIImage * hiResImage = [[UIImage alloc] initWithContentsOfFile:path];
参考までに、後でこのようにメインスレッドでUIの更新を行います...
[imageViewForZoom performSelectorOnMainThread:@selector(setImage:) withObject:hiResImage waitUntilDone:NO];
私がすでに知っていること:
- iOS4以降、UIKitの多くの描画メソッドがスレッドセーフになりました。ここから読んでください。
- バックグラウンド スレッドで UI を更新しないでください (例: no
[myImageView setImage:image];
)
編集: 別の観点から見てみましょう。「スレッドセーフではない」とは、永久にブロックされる可能性があることを意味しますか? または、開始/期間の実行時間に保証がないことを意味します。後者の場合、画像のロード時に「不確定な量」の遅延が発生しても問題ありません。UI の更新はメイン スレッドで行われます。そのため、少なくとも UIImage を作成するためには、スレッドセーフでなくても問題ないと見なされます。
これは質問とはあまり関係がないことはわかっていますが、元の質問に対する明確な答えがないのではないかと心配しているので、指摘したいだけです:)