ZeroAllocJobScheduler 1.0.0
See the version list below for details.
dotnet add package ZeroAllocJobScheduler --version 1.0.0
NuGet\Install-Package ZeroAllocJobScheduler -Version 1.0.0
<PackageReference Include="ZeroAllocJobScheduler" Version="1.0.0" />
<PackageVersion Include="ZeroAllocJobScheduler" Version="1.0.0" />
<PackageReference Include="ZeroAllocJobScheduler" />
paket add ZeroAllocJobScheduler --version 1.0.0
#r "nuget: ZeroAllocJobScheduler, 1.0.0"
#:package ZeroAllocJobScheduler@1.0.0
#addin nuget:?package=ZeroAllocJobScheduler&version=1.0.0
#tool nuget:?package=ZeroAllocJobScheduler&version=1.0.0
ZeroAllocJobScheduler
A highperformance alloc free c# Jobscheduler.
Schedules and executes jobs on a set of worker threads with automatic pooling of internal handles.
Code sample
public class HeavyCalculation : IJob{
public void Execute(){
Thread.Sleep(50); // Simulate heavy work...
Console.WriteLine("Done");
}
}
// Automatically chooses threads based on your processor count
var scheduler = new JobScheduler("MyThreads");
// You need to pool/create jobs still by yourself
var firsJob = new HeavyCalculation();
var secondJob = new HeavyCalculation();
// Scheduling jobs, not being executed instantly. They wait for a flush
var firstHandle = firsJob.Schedule();
var secondHandle = secondJob.Schedule();
// Flushes all scheduled jobs to the worker threads
scheduler.Flush();
// Blocks till job/handle completed
firstHandle.Complete();
secondHandle.Complete();
// Pool internal handles
firstHandle.Return();
secondHandle.Return();
// Dispose
scheduler.Dispose();
Advanced API
IJob.Schedule(IList<IJob> jobs, IList<JobHandle> handles); // Schedules a bunch of jobs at once, syntax sugar... handles written into passed array
JobHandle.Complete(JobHandle[] handles); // Waits for all jobhandles to finish, blocks till they are
JobHandle.Return(JobHandle[] handles); // Returns all handles to the pool
JobHandle.Complete(IList<JobHandle> handles); // Waits for all jobhandles to finish, blocks till they are
JobHandle.Return(IList<JobHandle> handles); // Returns all handles to the pool
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Microsoft.Extensions.ObjectPool (>= 7.0.0)
NuGet packages (6)
Showing the top 5 NuGet packages that depend on ZeroAllocJobScheduler:
Package | Downloads |
---|---|
Arch
A high performance c# net.7 and net.8 archetype based ECS ( Entity component system ). |
|
Pixillery.Core
The core library for the Pixillery game engine which all other Pixillery engine packages depend on. |
|
ABEngine.Arch
A high performance c# net.6 and net.7 archetype based ECS ( Entity component system ). |
|
ZeroGdk.Server
A high-performance C# library that powers the server side of the ZeroGdk framework, offering advanced connection management, an Arch-based ECS, and real-time entity networking for scalable multiplayer game servers. |
|
Arch-Events
A high performance c# net.7 and net.8 archetype based ECS ( Entity component system ). |
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on ZeroAllocJobScheduler:
Repository | Stars |
---|---|
genaray/Arch
A high-performance C# based Archetype & Chunks Entity Component System (ECS) with optional multithreading.
|
|
annulusgames/Arch.Unity
Arch ECS integration for Unity.
|
Initial release.