Quando um aplicativo iOS fica em segundo plano, as tarefas demoradas são pausadas?

Sim, eu sei que se eu quiser que meu aplicativo responda às ações de multitarefa dos usuários, como mudar para outro aplicativo, devo lidar com

- (void)applicationWillResignActive:(UIApplication *)application
- (void)applicationDidBecomeActive:(UIApplication *)application

E se meu aplicativo estiver executando uma operação demorada por um longo tempo (como o download de um arquivo grande) e o usuário fizer com que meu aplicativo entre em segundo plano? Essa operação será automaticamente suspensa e retomada quando o usuário voltar ao meu aplicativo?

O que exatamente acontecerá nos bastidores quando meu aplicativo entrar em segundo plano ou retomar em primeiro plano?

E se os usuários deixarem meu aplicativo em segundo plano, a execução do aplicativo estará no meio de um método?

Por exemplo, meu aplicativo está executando

for (int i = 1 to 10000K) {
    do some calculation;
}

Quando i == 500K, o usuário alterna para outro aplicativo. O que acontece com o loop for no meu aplicativo?

questionAnswers(2)

yourAnswerToTheQuestion