// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; namespace CommunityToolkit.HighPerformance.Helpers; /// <inheritdoc/> partial class ParallelHelper { /// <summary> /// Throws an <see cref="ArgumentOutOfRangeException"/> when an invalid parameter is specified for the minimum actions per thread. /// </summary> private static void ThrowArgumentOutOfRangeExceptionForInvalidMinimumActionsPerThread() { // Having the argument name here manually typed is // not ideal, but this way we save passing that string as // a parameter, since it's always the same anyway. // Same goes for the other helper methods below. throw new ArgumentOutOfRangeException( "minimumActionsPerThread", "Each thread needs to perform at least one action"); } /// <summary> /// Throws an <see cref="ArgumentOutOfRangeException"/> when an invalid start parameter is specified for 1D loops. /// </summary> private static void ThrowArgumentOutOfRangeExceptionForStartGreaterThanEnd() { throw new ArgumentOutOfRangeException("start", "The start parameter must be less than or equal to end"); } /// <summary> /// Throws an <see cref="ArgumentException"/> when a range has an index starting from an end. /// </summary> private static void ThrowArgumentExceptionForRangeIndexFromEnd(string name) { throw new ArgumentException("The bounds of the range can't start from an end", name); } /// <summary> /// Throws an <see cref="ArgumentOutOfRangeException"/> when an invalid top parameter is specified for 2D loops. /// </summary> private static void ThrowArgumentOutOfRangeExceptionForTopGreaterThanBottom() { throw new ArgumentOutOfRangeException("top", "The top parameter must be less than or equal to bottom"); } /// <summary> /// Throws an <see cref="ArgumentOutOfRangeException"/> when an invalid left parameter is specified for 2D loops. /// </summary> private static void ThrowArgumentOutOfRangeExceptionForLeftGreaterThanRight() { throw new ArgumentOutOfRangeException("left", "The left parameter must be less than or equal to right"); } }