Au début du mois, j'ai posé la question suivante Qu'est-ce qu'une boucle d'exécution ? Après avoir lu les réponses et fait quelques essais, j'ai réussi à le faire fonctionner, mais je ne le comprends toujours pas complètement. Si une runloop est juste une boucle associée à un thread et qu'elle ne génère pas d'autre thread dans les coulisses, comment l'autre code dans mon thread (mainthread pour rester simple) peut-il s'exécuter sans être "bloqué"/ne pas s'exécuter parce qu'il fait quelque part une boucle infinie ?
C'était la première question. Je passe maintenant à la deuxième.
Si j'ai bien compris, après avoir travaillé avec cela, mais sans l'avoir complètement compris, un runloop est une boucle dans laquelle vous attachez des "drapeaux" qui notifient au runloop que lorsqu'il arrive au point où se trouve le drapeau, il "s'arrête" et exécute n'importe quel handler qui est attaché à ce point ? Ensuite, il continue à courir jusqu'au point suivant de la file d'attente.
Ainsi, dans ce cas, aucun événement n'est placé en file d'attente dans les connexions, mais lorsqu'il s'agit d'événements, il prend l'action associée au robinet 1 et l'exécute avant de passer à nouveau aux connexions, et ainsi de suite. Ou suis-je loin d'avoir compris le concept ?