Проблема обработки потоков PowerShell

У меня есть проблема PowerShell, и, возможно, кто-то может помочь мне. Я использую PowerShell 2.0, и я хочу создавать и использовать темы. Я знаю, что могу использовать работу, но это не то, что я хочу. Я хочу скрипт, который создает формы Windows, а также бежит фоновые нити. Поскольку формы нуждаются в STA, это не легко. Бег «PowerShell.exe -sta» не является решением.

Ниже приведен мой скрипт, который я написал, для простой обработки потоков. Но это не работает. Даже новая нить не будет создана. Любое предложение, что не так? Пожалуйста, помогите мне, если вы можете!

С уважением, Питер.

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.")
5
задан Peter Kiraly 9 September 2011 в 06:29
поделиться