using System.Threading.Tasks;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
public static async Task Main()
using var cts = new CancellationTokenSource();
Console.WriteLine("Start Main.");
var task = EnumerateAsync(cts.Token);
Console.WriteLine("Started task.");
await foreach (var _ in task.WithCancellation(default))
Console.WriteLine("Finish Main.");
private static async IAsyncEnumerable<object> EnumerateAsync([EnumeratorCancellation] CancellationToken ct = default)
Console.WriteLine("Start EnumerateAsync.");
await Task.Delay(1500, ct).ContinueWith(_ => {});
Console.WriteLine("Finish EnumerateAsync.");