Figer et libérer des threads dans le débogueur
Votre application à thread nécessite d'être arrêtée dans le débogueur avant que vous ne puissiez figer et libérer des threads individuels. Vous pouvez arrêter l'application de plusieurs façons, notamment la suivante :
- Définissez des points d'arrêt, puis choisissez Exécuter > Exécuter ou Exécuter > Pas à pas.
- Appuyez sur le bouton Pause sur l'EDI lors de l'exécution de l'application.
- L'exception qui se produit arrête l'application.
Sommaire
Pour figer un thread dans le débogueur
- Ouvrez la fenêtre Threads en sélectionnant Voir > Fenêtres de débogage > Threads.
- Dans la fenêtre Threads, cliquez avec le bouton droit sur le thread à geler.
- Dans le menu contextuel, sélectionnez la commande qui s'applique à votre situation :
- Figer - fige le thread sélectionné
- Figer tous les autres threads - fige tous les autres threads, mais pas le thread sélectionné
Pour libérer un thread dans le débogueur
- Ouvrez la fenêtre Etat des threads en sélectionnant Voir > Fenêtres de débogage > Threads.
- Dans la fenêtre Threads, cliquez avec le bouton droit sur le thread gelé que vous voulez libérer. L'état doit être Gelé.
- Dans le menu contextuel, sélectionnez la commande qui s'applique à votre situation :
- Libérer - libère le thread sélectionné
- Libérer tous les threads - libère tous les threads, y compris le thread sélectionné
Pour figer et libérer les threads en utilisant le projet exemple THRDDEMO
Le projet thrddemo contient trois threads nommés (TBubbleSort, TQuickSort et TSelectionSort).
- Cliquez sur Démarrer | Programmes | Embarcadero RAD Studio Sydney | Exemples et naviguez vers l'exemple
\Object Pascal\RTL\Threads\thrddemo.dproj
. - Dans le gestionnaire de projets, ouvrez le fichier SortThds.pas.
- Dans l'éditeur de code, recherchez (
Ctrl+F
) la ligne de code suivante :Sort(Slice(FSortArray^, FSize));
- Cliquez dans la gouttière grise pour définir un point d'arrêt () sur cette ligne de code.
- Appuyez sur
F9
ou choisissez Exécuter > Exécuter pour exécuter le programme. - Dans la fenêtre Thread Sorting Demo, cliquez sur Start Sorting. Le traitement s'arrête à la ligne contenant le point d'arrêt.
- Ouvrez la fenêtre Etat des threads avec Voir > Fenêtres de débogage > Threads ou
Ctrl+Alt+T
. - Notez que le thread nommé TBubbleSort est à l'état Arrêté avec le statut défini sur PointArrêt.
- Appuyez de nouveau sur
F9
, et notez que le thread TQuickSort a été créé et qu'il est dans le même état que TBubbleSort. - Appuyez de nouveau sur
F9
, et notez que le thread TSelectionSort a été créé et qu'il est dans le même état que les deux autres threads.
Vous pouvez maintenant figer un des threads et exécuter les autres threads pour expérimenter l'opération geler. Dès qu'un thread a été gelé, vous pouvez le libérer.