Exemples de code du livre des modèles de sécurité de thread Delphi
https://dalija.prasnikar.info/delphitspatt/
https://dalija.prasnikar.info
Partie 2. La bibliothèque d'exécution de base
Chapitre 5. Registre de contrôle des points flottants
- Brokenmath.dpr
- Brokenmath.dproj
- Safemath.dpr
- Safemath.dproj
Chapitre 7.1. Paramètres
- Paramètres.dpr
- Paramètres.dproj
- Paramètresmainf.pas
- Paramètresmainf.dfm
Chapitre 8. Fields de classe, singletons et instances par défaut
- Singletons.dpr
- Singletons.dproj
- Singletonsmainf.pas
- Singletonsmainf.dfm
- Singletonclasses.pas
- SingletonLocal.pas
- SingletOnclassprop.pas
- Singletonlazy.pas
Chapitre 12. Collections
- Collectionstest.dpr
- Collectionstest.dproj
- Collectionsmainf.pas
- CollectionsMainf.dfm
Chapitre 13. Traitement de la collection parallèle
Partie 3. Cadre de base
Chapitre 16. Sérialisation
- Sérialisation.dpr
- Serialization.dproj
- Serializationmainf.pas
- Sérialisationmainf.dfm
Chapitre 17. System.net
- NetClient.dpr
- NetClient.dproj
- NetClientMainf.pas
- NetClientMainf.dfm
Chapitre 19. Indy
- Indy.dpr
- Indy.dproj
- Indymainf.pas
- Indymainf.dfm
Chapitre 20. REST
- Restdemo.dpr
- Restdemo.dproj
- Restmainf.pas
- Restmainf.dfm
Chapitre 21. Expressions régulières
Partie 5. Graphiques et traitement d'image
Chapitre 27. Consommation des ressources
- Ressources.dpr
- Ressources.dproj
- Resourcesmainf.pas
- Resourcesmainf.dfm
Chapitre 30. Exemple graphique VCL
- Images.dpr
- Images.dproj
- Imagesmainf.pas
- Imagesmainf.dfm
Partie 6. Cadres personnalisés
Chapitre 33. Journalisation
- Nx.log.pas
- Logging.dpr
- Logging.dproj
Chapitre 34. Jetons d'annulation
- Nx.tokens.pas
- Tokens.dpr
- Tokens.dproj
- Tokensmainf.pas
- Tokensmainf.dfm
Chapitre 35. Bus d'événement
- Nx.horizon.pas
- Horizon.dpr
- Horizon.dproj
- Horizonmainf.pas
- Horizonmainf.dfm
Chapitre 36. Performance de mesure
- Nx.chronos.pas
- Zerothread.dpr
- Zerothread.dproj
Remarque: L'objectif des exemples présentés est soit d'afficher le code et les problèmes de thread-unsafe qui peuvent survenir dans un tel code, soit afficher des modèles de codage généraux pour atteindre le code de filetage pendant que plusieurs threads s'exécutent. Comme beaucoup d'entre eux n'implémentent pas le nettoyage approprié lors de l'arrêt de l'application, et si vous fermez l'application avant le démarrage des tâches d'arrière-plan ou des threads ont terminé leur travail, l'application peut s'écraser.
Afin d'effectuer une fermeture nette, vous devez soit attendre l'achèvement de la tâche ou du thread, soit utiliser un autre mécanisme qui empêchera l'accès à l'interface graphique ou à d'autres données partagées lors de l'arrêt de l'application.
Vous pouvez trouver des exemples sur la façon d'arrêter l'application dans https://github.com/dalijap/code-delphi-async Chapitre 35.2 Clourdip sur la destruction de GUI