LazyQueue 1.0.3.6
dotnet add package LazyQueue --version 1.0.3.6
NuGet\Install-Package LazyQueue -Version 1.0.3.6
<PackageReference Include="LazyQueue" Version="1.0.3.6" />
paket add LazyQueue --version 1.0.3.6
#r "nuget: LazyQueue, 1.0.3.6"
// Install LazyQueue as a Cake Addin
#addin nuget:?package=LazyQueue&version=1.0.3.6
// Install LazyQueue as a Cake Tool
#tool nuget:?package=LazyQueue&version=1.0.3.6
A Lazy Queue
with locked and unlocked methods that can be used to move data from an asynchronous worker so it can be processed immediately by another thread.
New LazyQueue
Create a new LazyQueue
and specify the FixedCapacity
that it will use.
LazyQueue<T> LazyQueue = new LazyQueue<T>(FixedCapacity.MEDIUM);
You can also provide the FixedCapacity
manually as an int
LazyQueue<T> LazyQueue = new LazyQueue<T>(2048); // Min
LazyQueue<T> LazyQueue = new LazyQueue<T>(1024000); // Max
You should call a TryRead
method often to check for data, if the LazyQueue
overlaps itself it will cause data loss, You should read the queue as fast as you can and/or use a higher FixedCapacity
to avoid this happening.
Move
Move an object to the LazyQueue
so it can be read immediately using TryRead
LazyQueue.Move(T); // Locked
LazyQueue.MoveUnsafe(T); // Unlocked
Try Read
Attempt to read data from the LazyQueue
Returns object of type T
or null
T? type = LazyQueue.TryRead(); // Locked
T? type = LazyQueue.TryReadUnsafe(); // Unlocked
You should call a TryRead
method often to check for data, if the LazyQueue
overlaps itself it will cause data loss, You should read the queue as fast as you can and/or use a higher FixedCapacity
to avoid this happening.
Fixed Capacity (Enum)
Affects the overall memory usage of the LazyQueue
and how often the read/write head are reset.
FixedCapacity | Objects | Usage |
---|---|---|
SMALL | 2048 | This LazyQueue is for a small number of objects being processed very fast |
MEDIUM | 4096 (default) | This LazyQueue is for a large number of objects being processed very fast |
LARGE | 8192 | This LazyQueue is for a large number of objects being processed fast |
EXTREME | 16384 | This LazyQueue is for a large number of objects being processed slower |
You should call a TryRead
method often to check for data, if the LazyQueue
overlaps itself it will cause data loss, You should read the queue as fast as you can and/or use a higher FixedCapacity
to avoid this happening.
Using a higher FixedCapacity
does not affect the speed of the LazyQueue
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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. 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.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.3.6 | 81 | 4/11/2024 |