add IterateParallel extension method

This commit is contained in:
Mikhail 2023-06-11 23:18:56 +08:00
parent d4d0a888ca
commit 71bdcaa770
2 changed files with 93 additions and 79 deletions

14
src/EcsGroupExtensions.cs Normal file
View File

@ -0,0 +1,14 @@
namespace DCFApixels.DragonECS
{
public static class EcsGroupExtensions
{
public static void IterateParallel(this EcsGroup self, ThreadWorkerHandler worker, int minSpanSize)
{
IterateParallel(self, worker, minSpanSize);
}
public static void IterateParallel(this EcsReadonlyGroup self, ThreadWorkerHandler worker, int minSpanSize)
{
ThreadRunner.Run(worker, self, minSpanSize);
}
}
}

View File

@ -1,7 +1,7 @@
using DCFApixels.DragonECS;
internal static class ThreadRunner
namespace DCFApixels.DragonECS
{
internal static class ThreadRunner
{
private readonly static int _maxThreadsCount;
private static ThreadReacord[] _threads;
@ -87,8 +87,6 @@ internal static class ThreadRunner
_worker = null;
}
public delegate void ThreadWorkerHandler(ReadOnlySpan<int> entities);
private struct ThreadReacord
{
public Thread thread;
@ -98,4 +96,6 @@ internal static class ThreadRunner
public int start;
public int size;
}
}
public delegate void ThreadWorkerHandler(ReadOnlySpan<int> entities);
}