public async Task LimitedParallel(int maxParallel, int operationCount) { var testState = new TestState(maxParallel); var funcs = new Func <TestState, CancellationToken, UniTask> [operationCount]; for (int i = 0; i < funcs.Length; i++) { funcs[i] = (s, ct) => TestWork(s, ct); } await ParallelOperation.LimitedParallel(funcs, testState, maxParallel, CancellationToken.None); testState.Ensure(); }
public async Task ExceptionTest(int operationCount) { const int MaxParallel = 0; var testState = new TestState(MaxParallel); var funcs = new Func <TestState, CancellationToken, UniTask> [operationCount]; for (int i = 0; i < funcs.Length; i++) { funcs[i] = (s, ct) => TestWork(s, ct); } await Assert.ThrowsAsync <ArgumentOutOfRangeException>(async() => { await ParallelOperation.LimitedParallel(funcs, testState, -1, CancellationToken.None); }); }