Le premier cas. Laissons les threads en dehors de cela pendant un moment, en particulier parce qu'ils ne sont pas impliqués dans votre scénario.
Vous parlez de propriétés et de méthodes, mais au-dessous de tout cela, tout n'est que fonction. Lorsqu'une fonction en appelle une autre, contrôlez dans votre programme les transferts à la fonction appelée. Lorsque cette fonction est terminée, le contrôle renvoie au point où il a été appelé. Votre programme se souvient automatiquement de l'endroit où il doit revenir, peu importe à quel point les fonctions appellent plus de fonctions.Lorsque votre deuxième fonction définit l'index, ce qui se passe réellement, c'est que le compilateur traduit l'opération d'ensemble de propriétés en un appel de fonction. (Les propriétés ne sont finalement que du "sucre syntaxique" pour les fonctions.) Cette fonction appelle un tas d'autres fonctions qui ne sont pas importantes pour le scénario, sauf que l'une d'entre elles est celle qui appelle le gestionnaire d'événements "index changed". Il voit que vous avez une méthode associée à cet événement, et il appelle votre première méthode.
Votre première méthode fonctionne, et quand il se termine, il retourne à la fonction « appeler le gestionnaire d'événements changé d'index ». Finalement, cela et toutes les autres fonctions sans importance finissent de s'exécuter (peut-être après avoir fait plus d'appels de fonction en séquence), et la fonction "set the index property" renvoie le contrôle à votre seconde méthode.
Vous pouvez vous prouver que votre première suggestion est de savoir comment cela fonctionne. Afficher une boîte de message dans votre première méthode et afficher une autre boîte de message après le point dans votre deuxième méthode où vous définissez la propriété d'index. (Utilisez des messages différents!) Vous devriez voir le premier message apparaître, et après avoir fermé la boîte de message, vous devriez voir le deuxième message apparaître, montrant ainsi que la seconde méthode n'a pas continué à s'exécuter pendant que la première était en cours d'exécution.
*
Il est une limite, mais il est rarement touché à moins qu'il ya un bug dans votre programme. Lorsque vous avez trop d'appels de fonction imbriqués, ce qui se passe est un débordement de pile.
Bienvenue - comme dans la FAQ pour les devoirs - "Essayez de résoudre le problème de bonne foi en premier." Alors lancez-vous, puis demandez à la communauté de critiquer votre réponse. Vous apprendrez beaucoup plus et vous obtiendrez plus de réponses. – nzpcmad
ce n'est pas un devoir. Je suis actuellement un étudiant essayant d'élargir mes connaissances, les recherches que j'ai faites étaient au-delà de mes connaissances techniques en ce moment :-(Ceci a fourni une bonne réponse solide Merci à tout le monde – SheldonH
Au lieu de simplement chercher, vous auriez dû expérimenter. Idle googler peut difficilement être qualifié d'une tentative de bonne foi pour résoudre le problème vous-même, est-il? – bzlm