示例#1
0
        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();
        }
示例#2
0
        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);
            });
        }