我一直在努力将我用C#编写的WPF程序转移到PowerShell上,而我在使用Start-Job的RichTextBox中附加文本时遇到了一些问题看起来我可以调用Set-RichTextBox在哪里,除了scriptblock内部。有解决方法吗?
#outside the ScriptBlock
Set-RichTextBox -message "This does work"
#outside the ScriptBlock
$job = Start-Job -ScriptBlock {
function Set-RichTextBox
{
param (
[System.String]
$message
)
$richTextBox1.Dispatcher.invoke([action]{
$richTextBox1.AppendText($message)
},"Normal")
}
Set-RichTextBox -message "This doesn't work"
}
除了在Start-Job中,我可以在任何地方调用RichTextBox,我没有收到任何错误消息。知道我在这里做错了吗?
答案 0 :(得分:1)
Remove-Job *
$job = Start-Job -Name Test -ScriptBlock {
function Set-RichTextBox
{
param ([string]$message)
$message
}
Set-RichTextBox -message "This should work..."
}
Start-Sleep 5
Get-Job |Where-Object {$PSItem.Name -eq "Test"} |Receive-Job
你可能想看看:
PowerShell: Creating Custom Objects
这些可能相关也可能不相关: