Mark Wilkinson has a new blog and an itch to explain the notion of runspaces in Powershell:
So I have a problem with some of the posts I’ve read about runspaces. It all comes down to a small detail that I think makes a big difference in your understanding of them.
$Runspace = ::Create()
This code looks innocent. What does it do? You’d probably think it’s creating a new runspace, but it’s not. This code is instead creating a fresh instance of PowerShell. If you run this code and run
Get-Runspace
you’ll see there is still just one listed, the one attached to your current session. So what is this instance we just created?
Click through for an example and a step-by-step breakout of that example.