我试图防止用户快速点击一个按钮,这可能会在代码多次执行时冻结应用程序几分钟。
$searchBtn_clicked = {
$searchBtn.Enabled = $false
... some code that fills a listview from search result
$searchBtn.Enabled = $true
}
我的问题是:无论如何,只要单击按钮,上面的代码就会执行多次。单击后禁用按钮不会改变任何内容。我还尝试start-sleep 2
在启用它之前添加一个。
第一次点击触发代码,随后的点击是在禁用的按钮上......并且仍然会触发 Click 事件,只要按钮再次启用。
这里发生了什么?某种异步魔法?所有点击事件都以某种方式排队并且仅在按钮再次启用后才被处理?
我是 PowerShell 的新手,非常困惑。