diff --git a/README.md b/README.md index 795c2dd..19da7dd 100644 --- a/README.md +++ b/README.md @@ -71,10 +71,20 @@ Create a runspace. + + + + + + + + + + @@ -119,7 +129,7 @@ Create a runspace. $SynchronizedHashtable.UIControls.BTN_OK.Add_Click({$Null = $SynchronizedHashtable.UIWindow.Close()}) - $Null = $SynchronizedHashtable.UIWindow.ShowDialog() + $Null = $SynchronizedHashtable.UIWindow.Dispatcher.InvokeAsync{($SynchronizedHashtable.UIWindowResult = $SynchronizedHashtable.UIWindow.ShowDialog())}.Wait() } $SynchronizedHashtable = [System.Collections.Hashtable]::Synchronized(@{}) @@ -146,22 +156,25 @@ Create a runspace. $TextBoxUpdateInterval = [System.TimeSpan]::FromSeconds(5) - $TextBoxUpdateList = New-Object -TypeName 'System.Collections.Generic.List[System.String]' - $TextBoxUpdateList.Add('This is too legit!') - $TextBoxUpdateList.Add('This is too legit to quit!') + $UIControlUpdateDictionary = New-Object -TypeName 'System.Collections.Specialized.OrderedDictionary' + $UIControlUpdateDictionary.'TXTBOX_001' = "Value1" + $UIControlUpdateDictionary.'TXTBOX_002' = "Value2" + $UIControlUpdateDictionary.'TXTBOX_003' = "Value3" - ForEach ($TextBoxUpdate In $TextBoxUpdateList) - { - $LogMessage = "Waiting for $($TextBoxUpdateInterval.TotalSeconds) second(s). Please Wait..." - Write-Verbose -Message ($LogMessage) -Verbose + $LogMessage = "Pausing script execution for $($TextBoxUpdateInterval.TotalSeconds) second(s). Please Wait..." + Write-Verbose -Message ($LogMessage) -Verbose - $Null = Start-Sleep -Milliseconds ($TextBoxUpdateInterval.TotalMilliseconds) + $Null = Start-Sleep -Milliseconds ($TextBoxUpdateInterval.TotalMilliseconds) + + ForEach ($UIControlUpdate In $UIControlUpdateDictionary.GetEnumerator()) + { + $Null = Start-Sleep -Milliseconds (500) - $LogMessage = "Attempting to update text box. Please Wait..." - Write-Verbose -Message ($LogMessage) -Verbose + $LogMessage = "Attempting to update the value for UI control `"$($UIControlUpdate.Key)`". Please Wait..." + Write-Verbose -Message ($LogMessage) -Verbose - $SynchronizedHashtable.UIWindow.Dispatcher.Invoke([Action]{$SynchronizedHashtable.UIControls.$($TextBoxControlName).Text = $TextBoxUpdate}, 'Normal') - } + $SynchronizedHashtable.UIWindow.Dispatcher.Invoke([Action]{$SynchronizedHashtable.UIControls.$($UIControlUpdate.Key).Text = $UIControlUpdate.Value}, 'Normal') + } $InvokePSThreadParameters = New-Object -TypeName 'System.Collections.Specialized.OrderedDictionary' $InvokePSThreadParameters.Await = $True