标题: [问题求助] powershell如何在form中点击按钮时不让窗口卡死 [打印本页]
作者: Royo 时间: 2022-12-1 09:37 标题: powershell如何在form中点击按钮时不让窗口卡死
我在form中设置的某个按钮是一个循环,我点击按钮后必须要等待循环执行完才能操作form。我了解到可以通过start-job新开一个进程然后加入Doevents实现,我目前遇到的困难是object类型的变量如何传参?百度了一圈貌似无法实现,这样的话有无其他方法让form不卡死?
作者: went 时间: 2022-12-1 14:15
使用powershell.Create创建线程,addArgument传递参数- cls
- [void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
-
- $job1 = {
- param($btn,$counter)
- $counter..0 | foreach {
- $btn.Text = $_
- Start-Sleep -Milliseconds 100
- }
- }
-
- $f = New-Object "System.Windows.Forms.Form"
- $f.Width = 210
- $f.Height = 200
- $f.StartPosition = 'CenterScreen'
-
- $b = New-Object 'System.Windows.Forms.Button'
- $b.Location = New-Object 'System.Drawing.Point'(50,50)
- $b.Width = 100
- $b.Height = 50
- $b.Text = 'Click'
- $b.add_Click({
- [powershell]::Create().
- AddScript($job1). #脚本
- AddArgument($this). #参数1 btn
- AddArgument(200). #参数2 counter
- BeginInvoke()
- })
- $f.Controls.Add($b)
-
- $f.ShowDialog()
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |