mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 22:56:29 +00:00
46 lines
1.3 KiB
C#
46 lines
1.3 KiB
C#
using System.Diagnostics;
|
|
using Azaion.Annotator.Extensions;
|
|
using FluentAssertions;
|
|
using Xunit;
|
|
using ParallelOptions = Azaion.Annotator.Extensions.ParallelOptions;
|
|
|
|
namespace Azaion.Annotator.Test;
|
|
|
|
public class ParallelExtTest
|
|
{
|
|
[Fact]
|
|
public async Task ParallelExtWorksOkTest()
|
|
{
|
|
var list = Enumerable.Range(0, 10).ToList();
|
|
|
|
var sw = Stopwatch.StartNew();
|
|
await ParallelExt.ForEachAsync(list, async (i, cancellationToken) =>
|
|
{
|
|
await Task.Delay(TimeSpan.FromSeconds(i), cancellationToken);
|
|
}, new ParallelOptions
|
|
{
|
|
CpuUtilPercent = 100,
|
|
ProgressUpdateInterval = 1
|
|
});
|
|
|
|
var elapsed = sw.Elapsed;
|
|
elapsed.Should().BeLessThan(TimeSpan.FromSeconds(11));
|
|
}
|
|
|
|
[Fact]
|
|
public async Task ParallelLibWorksOkTest()
|
|
{
|
|
var list = Enumerable.Range(0, 10).ToList();
|
|
|
|
var sw = Stopwatch.StartNew();
|
|
await Parallel.ForEachAsync(list, new System.Threading.Tasks.ParallelOptions
|
|
{
|
|
MaxDegreeOfParallelism = Environment.ProcessorCount,
|
|
}, async (i, cancellationToken) =>
|
|
{
|
|
await Task.Delay(TimeSpan.FromSeconds(i), cancellationToken);
|
|
});
|
|
var elapsed = sw.Elapsed;
|
|
elapsed.Should().BeLessThan(TimeSpan.FromSeconds(11));
|
|
}
|
|
} |