Question Thread et ressources allouées à un seul process
- JJ
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 13 ans 4 mois #13024
par JJ
Thread et ressources allouées à un seul process a été créé par JJ
Bonjour, J’ai ce qui semble un bug de Windows PowerShell que je ne retrouve pas avec les éditeurs de PowerShell comme Windows PowerShell ISE et n’arrive pas à le contourner, pourriez-vous m’aider s’il vous plait.
Au clic sur un bouton, si je lance une fonction comme « Start-Sleep -Milliseconds 5000 » ou autre
Apres avoir voulu afficher une progressBar comme suit
[code:1]
$progressBar2.Visible = $true
$lbl_Result.Text = \"Veuillez patienter...\"
$btn_Export.Enabled = $false
Start-Sleep -Milliseconds 5000
[/code:1]
Le bouton se grise bien et le progressBar2 s’affiche bien mais l’appel après à une fonction comme Start-Sleep fige tous les progressBar le temps que cette fonction n’a pas finie d’être traité
Es-ce parce que les progressBar n’ont pas assez de ressources CPU allouées
?
Suis-je obligé de lancer la fonction dans un thread à part, si oui auriez-vous un exemple quelque part ?
voir fichier joint
merci d'avance
Au clic sur un bouton, si je lance une fonction comme « Start-Sleep -Milliseconds 5000 » ou autre
Apres avoir voulu afficher une progressBar comme suit
[code:1]
$progressBar2.Visible = $true
$lbl_Result.Text = \"Veuillez patienter...\"
$btn_Export.Enabled = $false
Start-Sleep -Milliseconds 5000
[/code:1]
Le bouton se grise bien et le progressBar2 s’affiche bien mais l’appel après à une fonction comme Start-Sleep fige tous les progressBar le temps que cette fonction n’a pas finie d’être traité
Es-ce parce que les progressBar n’ont pas assez de ressources CPU allouées
Suis-je obligé de lancer la fonction dans un thread à part, si oui auriez-vous un exemple quelque part ?
voir fichier joint
merci d'avance
La pièce jointe TestPBMajProgressBar.ps1 est absente ou indisponible
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 13 ans 4 mois #13034
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Thread et ressources allouées à un seul process
Salut, je ne vois pas de pb de freeze avec ton code, mais en lisant sur
MSDN la doc de Progressbar
il est fait mention des styles visuesl, donc en picorant de ci, de là, On trouve une solution :
[code:1]
[reflection.assembly]::loadwithpartialname(\"System.Windows.Forms\"«») | Out-Null
[reflection.assembly]::loadwithpartialname(\"System.Drawing\"«») | Out-Null
#ajouter AVANT tout affichage
[System.Windows.Forms.Application]::EnableVisualStyles()
[System.Windows.Forms.Application]::«»DoEvents()
[/code:1]
Testé dans une console PS v3 en mode STA.<br><br>Message édité par: Laurent Dardenne, à: 14/11/12 15:15
[code:1]
[reflection.assembly]::loadwithpartialname(\"System.Windows.Forms\"«») | Out-Null
[reflection.assembly]::loadwithpartialname(\"System.Drawing\"«») | Out-Null
#ajouter AVANT tout affichage
[System.Windows.Forms.Application]::EnableVisualStyles()
[System.Windows.Forms.Application]::«»DoEvents()
[/code:1]
Testé dans une console PS v3 en mode STA.<br><br>Message édité par: Laurent Dardenne, à: 14/11/12 15:15
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- JJ
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 13 ans 4 mois #13038
par JJ
Réponse de JJ sur le sujet Re:Thread et ressources allouées à un seul process
Salut,
Moi même en faisant ce que tu dis que j'utilise Windows PowerShell, Windows PowerShell ISE ou PowerGUI sous Seven cela est le même problème, les progressBar figent dès que je lance la fonction Timeout.
il y a l’ère vraiment d'avoir un problème de gestions de ressources pour qui arrête plus ou moins des traitement pour ne se consacrer uniquement à la dernière fonction lancée.
<br><br>Message édité par: bidouilles, à: 14/11/12 16:32
Moi même en faisant ce que tu dis que j'utilise Windows PowerShell, Windows PowerShell ISE ou PowerGUI sous Seven cela est le même problème, les progressBar figent dès que je lance la fonction Timeout.
il y a l’ère vraiment d'avoir un problème de gestions de ressources pour qui arrête plus ou moins des traitement pour ne se consacrer uniquement à la dernière fonction lancée.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 13 ans 4 mois #13040
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Thread et ressources allouées à un seul process
Charge Powershell en utilisant le paramètre -STA
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- JJ
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 13 ans 4 mois #13046
par JJ
Réponse de JJ sur le sujet Re:Thread et ressources allouées à un seul process
merci mais en ajoutant le parametre -STA au lancement de WindowsPowerShell comme suit:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -STA -command \"C:\JM\PowerShell\TestPBMajProgressBar.PS1\"
cela fige les progressBar dès le début en v2 si je ne met pas
[code:1]
[System.Windows.Forms.Application]::EnableVisualStyles()
[System.Windows.Forms.Application]::«»DoEvents()
[/code:1]
et me remet dans mon problème de départ si je le met (que ce soit en v2 ou en v3)
c'est à dire que cela me refige quand je lance le timeOut en appuyant sur le bouton
Message édité par: bidouilles, à: 14/11/12 17:18
Message édité par: bidouilles, à: 14/11/12 17:37<br><br>Message édité par: bidouilles, à: 15/11/12 11:09
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -STA -command \"C:\JM\PowerShell\TestPBMajProgressBar.PS1\"
cela fige les progressBar dès le début en v2 si je ne met pas
[code:1]
[System.Windows.Forms.Application]::EnableVisualStyles()
[System.Windows.Forms.Application]::«»DoEvents()
[/code:1]
et me remet dans mon problème de départ si je le met (que ce soit en v2 ou en v3)
c'est à dire que cela me refige quand je lance le timeOut en appuyant sur le bouton
Message édité par: bidouilles, à: 14/11/12 17:18
Message édité par: bidouilles, à: 14/11/12 17:37<br><br>Message édité par: bidouilles, à: 15/11/12 11:09
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 13 ans 4 mois #13085
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Thread et ressources allouées à un seul process
Bonsoir,
Je constate que ça fige, une fois après avoir cliqué sur le bouton et après quelques secondes, ça repart.
Peux tu tester en diminuant la tempo à 500 ms au lieu de 5 s ? (toujours avec la modif proposée par Laurent)
[code:1]Start-Sleep -Milliseconds 500[/code:1]
Pour moi c'est OK
@ +
Matthew
Je constate que ça fige, une fois après avoir cliqué sur le bouton et après quelques secondes, ça repart.
Peux tu tester en diminuant la tempo à 500 ms au lieu de 5 s ? (toujours avec la modif proposée par Laurent)
[code:1]Start-Sleep -Milliseconds 500[/code:1]
Pour moi c'est OK
@ +
Matthew
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
- Thread et ressources allouées à un seul process