Question WPF et MultiThread
- Richard Lazaro
- Auteur du sujet
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 8 ans 1 mois #20552
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
WPF et MultiThread a été créé par Richard Lazaro
Hello Guys,
Voilà je me renseigne pour faire de l'interface avec WPF (ça facile) mais avec du multi thread (et là dessuite ...)
Pour cela, je me base sur le lien suivant :
Mais j'ai un soucis, l'exécution du code donné fonctionne sur ISE mais pas sur la console powershell de base ...
Voici le code :
[code:1]
$syncHash = [hashtable]::«»Synchronized(@{})
$newRunspace =[runspacefactory]::CreateRunspace()
$newRunspace.ApartmentState = \"STA\"
$newRunspace.ThreadOptions = \"ReuseThread\"
$newRunspace.Open()
$newRunspace.SessionStateProxy.SetVariable(\"syncHash\",$syncHash)
$psCmd = [PowerShell]::Create().AddScript({
[xml]$xaml = @\"
<Window
xmlns=\"schemas.microsoft.com/winfx/2006/xaml/presentation\"
xmlns:«»x=\"schemas.microsoft.com/winfx/2006/xaml\"
x:Name=\"Window\" Title=\"Initial Window\" WindowStartupLocation = \"CenterScreen\"
Width = \"600\" Height = \"800\" ShowInTaskbar = \"True\">
<TextBox x:Name = \"textbox\" Height = \"400\" Width = \"600\"/>
</Window>
\"@
$reader=(New-Object System.Xml.XmlNodeReader $xaml)
$syncHash.Window=[Windows.Markup.XamlReader]::Load( $reader )
$syncHash.TextBox = $syncHash.window.FindName(\"textbox\"«»)
$syncHash.Window.ShowDialog() | Out-Null
$syncHash.Error = $Error
})
$psCmd.Runspace = $newRunspace
$data = $psCmd.BeginInvoke()
[/code:1]
Une fenêtre devrait apparaitre ...
Qu'est ce que je loupe ?
Bien Cordialement,
Richard LAZARO.
Voilà je me renseigne pour faire de l'interface avec WPF (ça facile) mais avec du multi thread (et là dessuite ...)
Pour cela, je me base sur le lien suivant :
Mais j'ai un soucis, l'exécution du code donné fonctionne sur ISE mais pas sur la console powershell de base ...
Voici le code :
[code:1]
$syncHash = [hashtable]::«»Synchronized(@{})
$newRunspace =[runspacefactory]::CreateRunspace()
$newRunspace.ApartmentState = \"STA\"
$newRunspace.ThreadOptions = \"ReuseThread\"
$newRunspace.Open()
$newRunspace.SessionStateProxy.SetVariable(\"syncHash\",$syncHash)
$psCmd = [PowerShell]::Create().AddScript({
[xml]$xaml = @\"
<Window
xmlns=\"schemas.microsoft.com/winfx/2006/xaml/presentation\"
xmlns:«»x=\"schemas.microsoft.com/winfx/2006/xaml\"
x:Name=\"Window\" Title=\"Initial Window\" WindowStartupLocation = \"CenterScreen\"
Width = \"600\" Height = \"800\" ShowInTaskbar = \"True\">
<TextBox x:Name = \"textbox\" Height = \"400\" Width = \"600\"/>
</Window>
\"@
$reader=(New-Object System.Xml.XmlNodeReader $xaml)
$syncHash.Window=[Windows.Markup.XamlReader]::Load( $reader )
$syncHash.TextBox = $syncHash.window.FindName(\"textbox\"«»)
$syncHash.Window.ShowDialog() | Out-Null
$syncHash.Error = $Error
})
$psCmd.Runspace = $newRunspace
$data = $psCmd.BeginInvoke()
[/code:1]
Une fenêtre devrait apparaitre ...
Qu'est ce que je loupe ?
Bien Cordialement,
Richard LAZARO.
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- NicolasBdn
-
- Hors Ligne
- Membre senior
-
il y a 8 ans 1 mois #20567
par NicolasBdn
Réponse de NicolasBdn sur le sujet Re:WPF et MultiThread
Salut,
Tu as juste oublié une petite chose au début du script:
[code:1]### Assembly Necessaire pour la fenêtre graphique ###
Add-Type -AssemblyName PresentationFramework
Add-Type -AssemblyName PresentationCore
Add-Type -AssemblyName WindowsBase
[/code:1]
Avec ça ta fenêtre devrait s'ouvrir
Tu peux t'aider de ma dernière réponse sur ce poste:
powershell-scripting.com/index.php?optio...id=19769&catid=6
Message édité par: NicolasB, à: 2/08/15 22:20
Tu as juste oublié une petite chose au début du script:
[code:1]### Assembly Necessaire pour la fenêtre graphique ###
Add-Type -AssemblyName PresentationFramework
Add-Type -AssemblyName PresentationCore
Add-Type -AssemblyName WindowsBase
[/code:1]
Avec ça ta fenêtre devrait s'ouvrir

Tu peux t'aider de ma dernière réponse sur ce poste:
powershell-scripting.com/index.php?optio...id=19769&catid=6
Message édité par: NicolasB, à: 2/08/15 22:20
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 8 ans 1 mois #20592
par SiSMik
Réponse de SiSMik sur le sujet Re:WPF et MultiThread
Bon courage Richard... c'est le bordel le multithreading et WPF ^^
Connexion ou Créer un compte pour participer à la conversation.
- NicolasBdn
-
- Hors Ligne
- Membre senior
-
il y a 8 ans 1 mois #20601
par NicolasBdn
Réponse de NicolasBdn sur le sujet Re:WPF et MultiThread
Les début son laborieux c'est vrai...
Le erreurs de vrai calvaire...
Mais une fois finis c'est que du bonheur
Le erreurs de vrai calvaire...
Mais une fois finis c'est que du bonheur

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 8 ans 1 mois #20620
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:WPF et MultiThread
Salut,
Je suis de l'avis de benduru...
NicolasB écrit:
Du coup j'ai refais des tests, mais je constate toujours des lags, même s'ils sont moins présents, lors du traitement et d'un déplacement de la fenêtre. On se trouve toujours dans une STA (Single Thread Application). L'astuce est toujours de \"hacher le traitement pour laisser le temps à Windows de redessiner la fenêtre\".
PowerShell n'est pas fait pour ça et pour le développement d'une interface graphique évoluée, il est préférable d'utiliser un autre langage (compilé) comme C++ ou C#.<br><br>Message édité par: Matthew BETTON, à: 3/09/15 08:55
Je suis de l'avis de benduru...
NicolasB écrit:
Tu peux t'aider de ma dernière réponse sur ce poste:
powershell-scripting.com/index.php?optio...gt;<br>Message édité par: NicolasB, à: 2/08/15 22:20
Du coup j'ai refais des tests, mais je constate toujours des lags, même s'ils sont moins présents, lors du traitement et d'un déplacement de la fenêtre. On se trouve toujours dans une STA (Single Thread Application). L'astuce est toujours de \"hacher le traitement pour laisser le temps à Windows de redessiner la fenêtre\".
PowerShell n'est pas fait pour ça et pour le développement d'une interface graphique évoluée, il est préférable d'utiliser un autre langage (compilé) comme C++ ou C#.<br><br>Message édité par: Matthew BETTON, à: 3/09/15 08:55
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.049 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- WPF et MultiThread