Ну ... во-первых, вы не должны устанавливать 5-мегапиксельное изображение в imageView.Функция imageView предназначена только для отображения на экране, и хотя она масштабирует изображение, установленное вами для целей отображения, оригинал сохраняется, поэтому объем используемой памяти увеличивается.Если вы сделаете это в лучшем случае, у вас будет плохо работающее приложение, которое имеет дело с большим количеством предупреждений памяти.В худшем случае вы будете часто падать.
Итак, вы должны изменить размер изображения до минимального размера, соответствующего вашим потребностям на экране, а затем установить это изображение в вашем imageView.Это мой любимый пост в блоге о том, как изменить размер изображения: http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way.
Теперь к вашему вопросу.Вы не можете точно знать, когда отображается изображение, но оно произойдет так быстро после масштабирования, что вы можете просто предположить, что оно отображается, как только вы его установите.Так что делайте масштабирование в фоновом потоке.Когда масштабирование завершено, отправьте сообщение в основной поток, чтобы установить масштабированное изображение в imageView, а затем выполните все, что вы хотите.