Which may make your animation smoother is not the fact that you are calling becomeFirstResponderin the main thread, but probably because the animation that starts when your placeholderTextViewfirst responder is executed in the main thread.
Instead of calling becomeFirstResponderin your main thread, you should make sure that all animations and user interface updates are done in the main thread, and not in the functions that cause these changes.