Никогда ничего не меняйте в текущем отображаемом UIView из фонового потока.Существует миллион различных проблем синхронизации, с которыми вы можете столкнуться.Загрузите изображение в фоновом потоке, а затем вызовите другой метод в основном потоке (из фонового потока), чтобы фактически обновить UIImageView
performSelectorOnMainThread:...
Что касается проблемы с неработающим методом, попробуйте это вместо:
[self performSelectorInBackground:@selector(setImage2:) withObject:nil];
(добавление двоеточия после setImage2).
Кроме того, я не думаю, что эти два объекта NSThread (t1 и t2) необходимы, и они также, вероятно, создаютутечка памяти.