|
| Section critique, bonnes pratiques |
| Iniciado por Code Source AGL, 06,nov. 2018 11:18 - 4 respuestas |
| |
| | | |
|
| |
Miembro registrado 11 mensajes |
|
| Publicado el 06,noviembre 2018 - 11:18 |
Bonjour,
je voudrais mettre en place des sections critiques dans un service Windows. J'ai 2 threads qui peuvent potentiellement appeler en même temps des procédures communes.
Ex d'une structure de procédure utilisée :
PROCEDURE MaProc(n1 est un entier)
SectionCritiqueDébut("MaProc")
n2 est un entier
n2 = n1
SectionCritiqueFin("MaProc")
RENVOYER n2
CAS ERREUR: RENVOYER 0
CAS EXCEPTION: RENVOYER 0
Questions :
- Faut-il protéger la variable n1 passée en paramètre ? - Comme je fais un RENVOYER n2, je suis obligé de mettre le SectionCritiqueFin avant de renvoyer sinon SectionCritiqueFin ne sera pas exécuté, est-ce correct ? - Si mon code déclenche une erreur ou une exception, est-ce que je dois faire un SectionCritiqueFin ou c'est automatiquement géré ?
Merci pour vos conseils. Cdt
-- www.code-source-agl.com
Le site de code source externe (PHP, JAVA, Objective-C, JavaScript, CSS, C++, ...) pour WinDev, Webdev et WinDev Mobile.
Vous aussi, venez y déposer vos sources ! |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 11 mensajes |
|
| Publicado el 07,noviembre 2018 - 11:29 |
Petit up
Merci
-- www.code-source-agl.com
Le site de code source externe (PHP, JAVA, Objective-C, JavaScript, CSS, C++, ...) pour WinDev, Webdev et WinDev Mobile.
Vous aussi, venez y déposer vos sources ! |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 256 mensajes |
|
| Publicado el 07,noviembre 2018 - 11:40 |
Bonjour
Pour la valeur de retour, il faut passer par une variable intermédiaire. Pour les exceptions, il faut les gérer avec QUAND EXCEPTION DANS (mais en général le code protégé par section critique doit être assez simple, les cas d'exception sont réduits) Ou alors attendre la version 24, le nouveau type "SectionCritique" et la syntaxe "UTILISER sc DANS" |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 11 mensajes |
|
| Publicado el 07,noviembre 2018 - 13:37 |
Merci pour ces infos. Cdt
-- www.code-source-agl.com
Le site de code source externe (PHP, JAVA, Objective-C, JavaScript, CSS, C++, ...) pour WinDev, Webdev et WinDev Mobile.
Vous aussi, venez y déposer vos sources ! |
| |
| |
| | | |
|
| | |
| |
| Publicado el 09,noviembre 2018 - 10:58 |
Code Source AGL a écrit :
- Comme je fais un RENVOYER n2, je suis obligé de mettre le SectionCritiqueFin avant de renvoyer sinon SectionCritiqueFin ne sera pas exécuté, est-ce correct ? - Si mon code déclenche une erreur ou une exception, est-ce que je dois faire un SectionCritiqueFin ou c'est automatiquement géré ?
Je te conseille de regarder l'étiquette "FIN:", ça devrait répondre à ta problématique. https://doc.pcsoft.fr/fr-FR/?1510014&name=fin
Franck |
| |
| |
| | | |
|
| | | | |
| | |
|