Chrissy LeMaire has a pair of posts on runspaces. First, a post which includes a runspace template:
Runspaces can be intimidating. I had heard about them, took a look at the code and was like “Ah, that looks complex. I’ll learn that later.” Because of this, I repeatedly went over the bulk insert code to familiarize the audience with the functionality that I was eventually going to multi-thread.
Then she shows us how to output results without waiting for all runspaces to complete:
Recently, I had a request to add multi-threading to Read-DbaBackupHeader. This was the first runspace in which I had to output the results from the runspace to the host — usually I just needed commands to run in the background, like with bulk-inserts to SQL Server.
Runspaces seems to be a good option in Powershell for multithreading.