Sie können eine Methode als asynchronen Job starten, das Start-Job
Cmdlets.
Also, würden Sie so etwas tun:
function generate_html($var)
{
#snipped
}
Start-Job -ScriptBlock { generate_html team1 }
Wenn Sie überwachen müssen, wenn der Auftrag abgeschlossen ist, entweder speichern Sie die Ausgabe von Start-Job oder Get-Job
verwenden, um alle Arbeitsplätze zu erhalten begann in der aktuellen Sitzung, ziehen Sie die gewünschte heraus. Sobald Sie das haben, überprüfen Sie die State
Eigenschaft, um zu sehen, ob der Wert Finished
ist
EDIT: Eigentlich mein Fehler, der Job in einem anderen Thread sein, so Funktionen definiert oder nicht verfügbar (nicht in einem Modul das Powershell weiß) in dem Thread, von dem Sie Ihren Job starten, sind nicht verfügbar.
Versuchen Sie, Ihre Funktion als Skript erklärt: bei Verwendung von Jobs
$generateHtml = {
param($var)
#snipped
}
Start-Job -ScriptBlock $generateHtml -ArgumentList team1
Start-Job -ScriptBlock $generateHtml -ArgumentList team2
Look: 'get-help about_jobs' – arco444