可以Application.DoEvents()在C#中使用吗?
这个函数是否能够让GUI跟上应用程序的其余部分,就像VB6 DoEvents一样?
这可能是一个很难回答的问题。我写了一个脚本来检查进程的响应属性。为了可视化脚本正在运行,我创建了一个 Windows 窗体,您可以在其中查看正在监视的进程。该脚本运行良好,但我无法对我的 winform 执行任何操作。无法最小化或关闭它,一旦我将光标移动到 windowsform,我的鼠标光标就会切换到沙漏符号。任何想法为什么?
当我注释掉 while 循环时,winform 也没有响应
这是我的代码:
if ($ShowWindowsForm){
$window = New-Object System.Windows.Forms.Form
$window.text = "Process Watcher"
$window.size = New-Object System.Drawing.Size(350,100)
$window.location = New-Object System.Drawing.Size(100,100)
$icon = [system.drawing.icon]::ExtractAssociatedIcon($PSHOME + "\powershell.exe")
$window.Icon = $Icon
$text = New-Object System.Windows.Forms.Label
$text.Text = "Folgender Prozess wird überwacht:`n$target.exe"
$text.location = New-Object System.Drawing.Size(10,10)
$text.AutoSize = $true
$window.Controls.Add($text)
$window.Show()
}
while (1) {
sleep -Milliseconds 100
if(!((get-process $target).Responding -eq $true)) {
#do stuff
}
Run Code Online (Sandbox Code Playgroud)