mirror of
https://github.com/freedbygrace/Invoke-PSThread.git
synced 2026-08-18 13:53:15 +00:00
Update README.md
This commit is contained in:
@@ -71,10 +71,20 @@ Create a runspace.
|
|||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="*"/>
|
<RowDefinition Height="*"/>
|
||||||
<RowDefinition Height="*"/>
|
<RowDefinition Height="*"/>
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Label Name="LBL_TXTBOX_001" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="1" Content="Example Label" FontSize="13" ToolTip="Example Tooltip"></Label>
|
<Label Name="LBL_TXTBOX_001" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="1" Content="Example Label" FontSize="13" ToolTip="Example Tooltip"></Label>
|
||||||
<TextBox Name="TXTBOX_001" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="3" FontSize="16" IsReadOnly="False" Height="25" BorderBrush="Black" BorderThickness="0.8" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="4,4,4,4"></TextBox>
|
<TextBox Name="TXTBOX_001" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="3" FontSize="16" IsReadOnly="False" Height="25" BorderBrush="Black" BorderThickness="0.8" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="4,4,4,4"></TextBox>
|
||||||
|
|
||||||
|
<Label Name="LBL_TXTBOX_002" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="1" Content="UserName" FontSize="13" ToolTip="Example Tooltip"></Label>
|
||||||
|
<TextBox Name="TXTBOX_002" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="3" FontSize="16" IsReadOnly="True" Height="25" BorderBrush="Black" BorderThickness="0.8" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="4,4,4,4"></TextBox>
|
||||||
|
|
||||||
|
<Label Name="LBL_TXTBOX_003" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="1" Content="Password" FontSize="13" ToolTip="Example Tooltip"></Label>
|
||||||
|
<TextBox Name="TXTBOX_003" Grid.Column="1" Grid.Row="5" Grid.ColumnSpan="3" FontSize="16" IsReadOnly="True" Height="25" BorderBrush="Black" BorderThickness="0.8" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="4,4,4,4"></TextBox>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
@@ -119,7 +129,7 @@ Create a runspace.
|
|||||||
|
|
||||||
$SynchronizedHashtable.UIControls.BTN_OK.Add_Click({$Null = $SynchronizedHashtable.UIWindow.Close()})
|
$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(@{})
|
$SynchronizedHashtable = [System.Collections.Hashtable]::Synchronized(@{})
|
||||||
@@ -146,22 +156,25 @@ Create a runspace.
|
|||||||
|
|
||||||
$TextBoxUpdateInterval = [System.TimeSpan]::FromSeconds(5)
|
$TextBoxUpdateInterval = [System.TimeSpan]::FromSeconds(5)
|
||||||
|
|
||||||
$TextBoxUpdateList = New-Object -TypeName 'System.Collections.Generic.List[System.String]'
|
$UIControlUpdateDictionary = New-Object -TypeName 'System.Collections.Specialized.OrderedDictionary'
|
||||||
$TextBoxUpdateList.Add('This is too legit!')
|
$UIControlUpdateDictionary.'TXTBOX_001' = "Value1"
|
||||||
$TextBoxUpdateList.Add('This is too legit to quit!')
|
$UIControlUpdateDictionary.'TXTBOX_002' = "Value2"
|
||||||
|
$UIControlUpdateDictionary.'TXTBOX_003' = "Value3"
|
||||||
|
|
||||||
ForEach ($TextBoxUpdate In $TextBoxUpdateList)
|
$LogMessage = "Pausing script execution for $($TextBoxUpdateInterval.TotalSeconds) second(s). Please Wait..."
|
||||||
{
|
Write-Verbose -Message ($LogMessage) -Verbose
|
||||||
$LogMessage = "Waiting 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..."
|
$LogMessage = "Attempting to update the value for UI control `"$($UIControlUpdate.Key)`". Please Wait..."
|
||||||
Write-Verbose -Message ($LogMessage) -Verbose
|
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 = New-Object -TypeName 'System.Collections.Specialized.OrderedDictionary'
|
||||||
$InvokePSThreadParameters.Await = $True
|
$InvokePSThreadParameters.Await = $True
|
||||||
|
|||||||
Reference in New Issue
Block a user