Question Execution asynchrone (Résolu)
- pav
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 16 ans 4 mois #331
par pav
Execution asynchrone (Résolu) a été créé par pav
Bonjour tout le monde,
Je débute en powershell, et j'ai un petit problème de conception...
J'ai crée un ptit script de supervision wmi de serveurs : c'est une interface windows.form qui toutes les minutes, lancent une fonction de vérification de l'état des serveurs, et actualise ses infos à la fin de l'exécution.
Le hic, c'est que la fonction de vérification est assez longue (30 sec. environ) et que pendant ce temps, je n'ai plus accès aux controles sur ma form.
D'où ma question : est-il possible de lancer ma fonction de vérif en asynchrone afin de récupérer le contrôle de ma fenêtre ?
J'ai une solution de contournement, à savoir mettre la fonction de vérification dans un autre fichier ; dans ce la, connaissez vous un moyen \"propre\" de retourner des variables au script appelant ?
Message édité par: pav, à: 11/05/07 19:42<br><br>Message édité par: Arnaud, à: 17/07/07 17:32
Je débute en powershell, et j'ai un petit problème de conception...
J'ai crée un ptit script de supervision wmi de serveurs : c'est une interface windows.form qui toutes les minutes, lancent une fonction de vérification de l'état des serveurs, et actualise ses infos à la fin de l'exécution.
Le hic, c'est que la fonction de vérification est assez longue (30 sec. environ) et que pendant ce temps, je n'ai plus accès aux controles sur ma form.
D'où ma question : est-il possible de lancer ma fonction de vérif en asynchrone afin de récupérer le contrôle de ma fenêtre ?
J'ai une solution de contournement, à savoir mettre la fonction de vérification dans un autre fichier ; dans ce la, connaissez vous un moyen \"propre\" de retourner des variables au script appelant ?
Message édité par: pav, à: 11/05/07 19:42<br><br>Message édité par: Arnaud, à: 17/07/07 17:32
Connexion ou Créer un compte pour participer à la conversation.
- Robin Lemesle
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 260
- Remerciements reçus 0
il y a 16 ans 4 mois #332
par Robin Lemesle
Robin MVP PowerShell
Réponse de Robin Lemesle sur le sujet Re:Execution asynchrone
Salut pav et bienvenue sur le forum 
Pourrais tu nous en faire profiter ?
Pourquoi ne pas lancer une nouvelle instance de PowerShell avec ta fonction ?
explication : tu fais tourner ton script principal et puis au moment de la verif, imaginons qu'elle soit activée par l'appui sur un boutton et bien tu lances un autre script.
Deux solutions :
- la première, pas très correcte, tu enregistres tes valeurs dans un fichier et tu vas le récupérer après. Mais je ne te le conseille pas.
- la seconde est beaucoup plus propre.
Il suffit de placer un point et un espace devant le nom du script quand tu le lancera depuis ton script principal.
explication :
PowerShell définit de base que, sauf spécification contraire explicite de ta part, une variable ne peut être lue ou modifiée que dans la portée où elle a été créée, et une variable ne peut être lue dans une autre portée que si cette autre portée a été créée dans la portée où la variable ou fonction a été créée.
A chaque fois que tu exécutes une fonction, un script ou une nouvelle instance de Windows PowerShell, une nouvelle portée locale est créée, on parle de portées parent et enfant.
Si tu veux pouvoir utiliser ces variables même apres la fin de ton script tu dois donc mettre le libellé [code:1]$global:<var>[/code:1] pour toutes tes variables, ou alors tu places un point et un espace avant le nom du script lorsque tu l'exécutes et PowerShell traitera les variables comme si tu avais défini le type de portée globale.
Donc dans ce cas tu n'as pas besoin d’utiliser le libellé global dans le script pour modifier les valeurs de la portée parent.
j'espère avoir été assez clair.
Tiens nous au courant ou dis le moi si tu n'as pas compris.
Rob<br><br>Message édité par: Arnaud, à: 11/05/07 23:53

J'ai crée un ptit script de supervision wmi de serveurs : c'est une interface windows.form qui toutes les minutes, lancent une fonction de vérification de l'état des serveurs, et actualise ses infos à la fin de l'exécution.
Pourrais tu nous en faire profiter ?
D'où ma question : est-il possible de lancer ma fonction de vérif en asynchrone afin de récupérer le contrôle de ma fenêtre ?
Pourquoi ne pas lancer une nouvelle instance de PowerShell avec ta fonction ?
explication : tu fais tourner ton script principal et puis au moment de la verif, imaginons qu'elle soit activée par l'appui sur un boutton et bien tu lances un autre script.
dans ce la, connaissez vous un moyen \"propre\" de retourner des variables au script appelant ?
Deux solutions :
- la première, pas très correcte, tu enregistres tes valeurs dans un fichier et tu vas le récupérer après. Mais je ne te le conseille pas.
- la seconde est beaucoup plus propre.
Il suffit de placer un point et un espace devant le nom du script quand tu le lancera depuis ton script principal.
explication :
PowerShell définit de base que, sauf spécification contraire explicite de ta part, une variable ne peut être lue ou modifiée que dans la portée où elle a été créée, et une variable ne peut être lue dans une autre portée que si cette autre portée a été créée dans la portée où la variable ou fonction a été créée.
A chaque fois que tu exécutes une fonction, un script ou une nouvelle instance de Windows PowerShell, une nouvelle portée locale est créée, on parle de portées parent et enfant.
Si tu veux pouvoir utiliser ces variables même apres la fin de ton script tu dois donc mettre le libellé [code:1]$global:<var>[/code:1] pour toutes tes variables, ou alors tu places un point et un espace avant le nom du script lorsque tu l'exécutes et PowerShell traitera les variables comme si tu avais défini le type de portée globale.
Donc dans ce cas tu n'as pas besoin d’utiliser le libellé global dans le script pour modifier les valeurs de la portée parent.
j'espère avoir été assez clair.
Tiens nous au courant ou dis le moi si tu n'as pas compris.
Rob<br><br>Message édité par: Arnaud, à: 11/05/07 23:53
Robin MVP PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- pav
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 16 ans 4 mois #343
par pav
Réponse de pav sur le sujet Re:Execution asynchrone
Merci Robin pour ta réponse, c'est exactement ce que je cherchais 
robin écrit:
Malheureusement non, c'est pour le boulot, donc confidentiel et très spécifique à nos environnements.
Mais dès que j'ai des scripts à partager, je n'hésite pas

robin écrit:
Pourrais tu nous en faire profiter ?
Malheureusement non, c'est pour le boulot, donc confidentiel et très spécifique à nos environnements.
Mais dès que j'ai des scripts à partager, je n'hésite pas
Connexion ou Créer un compte pour participer à la conversation.
- Robin Lemesle
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 260
- Remerciements reçus 0
il y a 16 ans 4 mois #344
par Robin Lemesle
Robin MVP PowerShell
Réponse de Robin Lemesle sur le sujet Re:Execution asynchrone
De rien et bon scripting 
Rob

Rob
Robin MVP PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.065 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Execution asynchrone (Résolu)