module/src/TestAsyncCmdlet.cs
using System;
using System.Management.Automation; using System.Threading.Tasks; namespace Cbsch.PSlib { [Cmdlet("Test", "Async")] public class TestAsyncCmdlet : AsyncSampleCmdlet { protected override Task ProcessRecordAsync() { return base.ProcessRecordAsync(); } protected override Task BeginProcessingAsync() { Console.WriteLine("Starting"); ExecuteAsync().Wait(); Console.WriteLine("Done"); return base.BeginProcessingAsync(); } private async Task ExecuteAsync() { for (var i = 0; i < 4; i++) { Console.WriteLine(string.Format("Test1 {0}", i)); WriteObject(string.Format("Test {0}", i)); Console.WriteLine(string.Format("Test2 {0}", i)); await Task.Delay(1); } Console.WriteLine(string.Format("Done")); } } } |