Asynchronous Processing
PowerShell prefers to run things synchronously, that is, sequentially, or one after another. However, it is frequently necessary to run many things simultaneously, without waiting for another command to complete. This is known as an asynchronous operation.
Operations of this nature may be local to the current machine or might run queries or code against remote systems.
PowerShell includes several different commands and classes that can do more than one thing at a time. The most obvious of these are the job commands.
In addition to the job commands, PowerShell can react to .NET events and use runspaces and runspace pools.
This chapter explores the following topics:
- Working with jobs
- Reacting to events
- Using runspaces and runspace pools
PowerShell jobs, using commands like Start-Job
, are the simplest starting point for executing code asynchronously.