using System.Threading.Tasks;
public static class Program
public static void Main()
CancellationTokenSource cts = new CancellationTokenSource(1000);
cts.Token.Register(() => Console.WriteLine("--Token Canceled"));
.WithDegreeOfParallelism(2)
.WithCancellation(cts.Token)
Console.WriteLine($"Processing item #{x}");
Console.WriteLine($"The query was completed successfully");
catch (OperationCanceledException)
Console.WriteLine($"The query was canceled");
public static void ForAll2<TSource>(this ParallelQuery<TSource> source,
foreach (var _ in source.Select(item => { action(item); return 0; })) { }