使用 powershell 和 windows 窗体,我有一个应用程序,其中包含我正在尝试填充的 datagridview。为了这个例子,假设我的代码如下:
$button1_Click={
For ($i = 0; $i -lt 100000; $i++)
{
$datagridview1.Rows.Add($i.ToString())
}
在 for 指令运行期间(在我的计算机上的这个特定示例中大约 13 秒),表单显然会被锁定。
我基本上是想找到一种方法来做到这一点,以便 datagridview 不断更新而不锁定表单。我不在乎是否需要更长的时间才能运行,只要表单可用。
这是我尝试过的:
Start-Job,但由于 Start-Job 不能直接与我的 datagridview 交互,我需要等待作业完成,以便我可以检索结果,然后将其添加到 datagridview。这样做将涉及一个 Wait-Job,它会在 Wait-Job 运行时锁定表单。
Register-ObjectEvent,但这在使用 Windows 窗体时无法按预期工作。
看着使用背景工作者,但意识到在 Powershell 中这是不可能的