PQueue 1.0.7
dotnet add package PQueue --version 1.0.7
NuGet\Install-Package PQueue -Version 1.0.7
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PQueue" Version="1.0.7" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PQueue --version 1.0.7
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: PQueue, 1.0.7"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PQueue as a Cake Addin
#addin nuget:?package=PQueue&version=1.0.7
// Install PQueue as a Cake Tool
#tool nuget:?package=PQueue&version=1.0.7
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
PQueue
Lightweight, persistent, thread-safe, disk-based queue written in C#.
New in v1.0.x
- Initial release
- Added expiration to queued data
Getting Started
Refer to the Test
project for a working example.
using PQueue;
PersistentQueue queue = null;
queue = new PersistentQueue("./temp/"); // persist data even after disposed
queue = new PersistentQueue("./temp/", true); // delete data after disposed
string key = null;
// Add to the queue...
key = queue.Enqueue("Hello, world!");
key = await queue.EnqueueAsync("Hello, world!"); // async
// Add to the queue with expiration...
key = queue.Enqueue("Hello, world!", DateTime.Parse("1/10/2024 01:23:45"));
key = await queue.EnqueueAsync("Hello, world!", DateTime.Parse("1/10/2024 01:23:45")); // async
(string, byte[])? data = null;
data = queue.Dequeue(); // get the latest
data = queue.Dequeue(key); // get a specific entry
data = queue.Dequeue(key, true); // get a specific entry and delete it
data = await.queue.DequeueAsync(key); // get a specific entry asynchronously
if (data != null)
Console.WriteLine(data.Item1 + ": " + Encoding.UTF8.GetString(data.Item2));
queue.Purge(key); // delete a specific entry
queue.Expire(key); // expire a specific entry
DateTime? expiry = queue.GetExpiration(key); // get the expiration time of a specific entry
Console.WriteLine("Queue depth : " + queue.Depth);
Console.WriteLine("Queue length : " + queue.Length + " bytes");
Version History
Refer to CHANGELOG.md for version history.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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 is compatible. 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 is compatible. 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 Framework | net48 is compatible. net481 was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETFramework 4.8
- No dependencies.
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
-
net8.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.
Initial release