KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I needed to download file using WebClient in PowerShell 2.0, and I wanted to show download progress, so I did it this way: $activity = "Downloading" $client = New-Object System.Net.WebClient $urlAsUri = New-Object System.Uri($url) $event = New-Object System.Threading.ManualResetEvent($false) $downloadProgress = [System.Net.DownloadProgressChangedEventHandler] { $progress = [int]((100.0 * $_.BytesReceived) / $_.TotalBytesToReceive) Write-Progress -Activity $activity -Status "${progress}% done" -PercentComplete $progress } $downloadComplete = [System.ComponentModel.AsyncCompletedEventHandler] { Write-Progress -Activity $activity -Completed $event.Set() } $client.add_DownloadFileCompleted($downloadComplete) $client.add_DownloadProgressChanged($downloadProgress) Write-Progress -Activity $activity -Status "0% done" -PercentComplete 0 $client.DownloadFileAsync($urlAsUri, $file) $event.WaitOne() I am getting a error There is no Runspace available to run scripts in this thread. for the code in $downloadProgress handler, which is logical. However, how do I provide a Runspace for the thread that (probably) belongs to the ThreadPool ? UPDATE: Note that both answers to this question are worth reading, and I would accept both if I could.
Tags (comma-separated)
Save Edits
Cancel