/// <summary>
 /// Queries for object instances in the object model.
 /// </summary>
 /// <param name="query">Query parameters.</param>
 /// <returns>A lazy evaluated collection of object instances.</returns>
 public override void ProcessRecord(QueryBuilder query)
 {
     _parentJob.DisableFlowControlForPendingCmdletActionsQueue();
     foreach (TSession sessionForJob in this.GetSessionsToActAgainst(query))
     {
         StartableJob childJob = this.DoCreateQueryJob(sessionForJob, query, actionAgainstResults: null);
         if (childJob != null)
         {
             if (!this.AsJob.IsPresent)
             {
                 _parentJob.AddChildJobAndPotentiallyBlock(this.Cmdlet, childJob, ThrottlingJob.ChildJobFlags.None);
             }
             else
             {
                 _parentJob.AddChildJobWithoutBlocking(childJob, ThrottlingJob.ChildJobFlags.None);
             }
         }
     }
 }