Вы не должны делать ничего, что связано с фоновым потоком.Все перечисленные элементы не должны выполняться в фоновом режиме.Если вы корректно разбиваете свое приложение на MVC, представление должно содержать только элементы, которые определяют, как оно отображается.Так что все, что касается одного, должно быть только в главном потоке.
Все ваши манипуляции с данными должны находиться в вашей модели.Это может быть нарезано по мере необходимости для производительности.Просто будьте осторожны, отправляя сообщения для обновления пользовательского интерфейса для обработки данных в главном потоке.Это включает в себя уведомления.Они отправляются в том же потоке, в котором они были созданы.Так что при отправке легко забыть переключиться на mainThread.