Je suis en train d'implémenter une logique de lecture à partir du socket TCP en mode d'arrière-plan.iPhone OS 4.0.x - blocage des opérations d'E/S en arrière-plan
CFReadStreamRead
La fonction est utilisée pour extraire des données du socket et pour l'instant tout fonctionne correctement. Mais je me demande comment iPhone OS 4.x traite le blocage des opérations d'E/S en mode d'arrière-plan. Par exemple: CFReadStreamRead
fonction peut bloquer pendant des heures en attendant certaines données entrantes.
Existe-t-il des contraintes officielles comme 10 minutes pour les tâches d'arrière-plan? Mon application sera-t-elle détruite par iPhone OS dans le cas d'une opération d'E/S de blocage de longue durée?
Veuillez noter - Je suis ne pas exécuter la fonction d'E/S de blocage dans la tâche d'arrière-plan. Code lui-même est situé dans applicationDidEnterBackground
méthode de mon UIApplicationDelegate
. L'application elle-même est configurée avec le paramètre "voip" dans le fichier Info.plst + CFReadStream est configuré selon les recommandations d'Apple avec le paramètre kCFStreamNetworkServiceTypeVoIP
. Donc, fondamentalement, il s'agit d'un scénario régulier d'application VoIP en mode d'arrière-plan.
Merci!