我有一個PowerShell的問題,也許有人可以幫助我。我正在使用PowerShell 2.0,並且我想創建並使用線程。我知道我可以使用工作,但那不是我想要的。 我想要一個腳本,它創建Windows窗體,並運行後臺線程。由於表單需要STA,這並不容易。運行「powershell.exe -sta」不是一個解決方案。Powershell線程處理問題
下面是我編寫的腳本,用於簡單的線程處理。但它不起作用。即使是新的線程也不會被創建。任何建議,有什麼不對?如果可以,請你幫助我!
問候,彼得。
function ThreadProc() {
for ($i = 0; $i -lt 10; $i++) {
$ApartmentState = [System.Threading.Thread]::CurrentThread.GetApartmentState()
Write-Host "ThreadProc ($ApartmentState): $i"
# Yield the rest of the time slice.
[System.Threading.Thread]::Sleep(0)
}
}
$ApartmentState = [System.Threading.Thread]::CurrentThread.GetApartmentState()
Write-Host "Main thread ($ApartmentState): Start a second thread."
$thread_job = New-Object System.Threading.ThreadStart(ThreadProc)
$thread = New-Object System.Threading.Thread($thread_job)
$thread.CurrentThread.SetApartmentState([System.Threading.ApartmentState]::STA)
$thread.Start()
for ($i = 0; $i -lt 4; $i++) {
Write-Host("Main thread: Do some work.")
[System.Threading.Thread]::Sleep(0)
}
Write-Host("Main thread: Call Join(), to wait until ThreadProc ends.")
$thread.Join()
Write-Host("Main thread: ThreadProc.Join has returned. Program end.")
謝謝,我會盡力而爲,如果可以的話。 –