1

C# で記述した WPF プログラムを PowerShell に移行する作業を行っていますが、RichTextBox に Start-Job からテキストを追加する際に少し問題があります。スクリプトブロック内を除いて。回避策はありますか?

#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 を呼び出すことができます。エラー メッセージは表示されません。ここで何が間違っているのか分かりますか?

4

1 に答える 1

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: カスタム オブジェクトの作成

また、これらは関連している場合と関連していない場合があります。

于 2015-12-09T05:47:01.970 に答える