首页 > 解决方案 > Powershell Winforms - 处理窗口事件

问题描述

代码没有按预期工作。ShowDialog() 正在阻塞线程。不处理事件。我怎样才能使这项工作?单击 3 次后必须关闭窗口。窗口可能会或可能不会在单独的线程中运行。Mainloop(write-host $x) 必须运行,而窗口可以处理鼠标点击事件。

function myform{
        $m=0
        $fr = New-Object -TypeName System.Windows.Forms.Form
        $ev = Register-ObjectEvent -InputObject $fr -EventName Mouseclick -Action {
            $m++
            if($m -ge 3){
                $fr.Close()
                }
            }
        $fr.Activate()
        $fr.ShowDialog()
    }
    #$myjob = Start-Job $Function:myform
    $myjob
    $x = 0
    myform

    while($x -lt 3){
        $x++
        write-host $x
        Start-Sleep 2
        }
    Stop-Job -id $myjob.id

标签: .netmultithreadingwinformspowershellevent-handling

解决方案


推荐阅读