LeasePool 0.1.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package LeasePool --version 0.1.0
NuGet\Install-Package LeasePool -Version 0.1.0
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="LeasePool" Version="0.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add LeasePool --version 0.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: LeasePool, 0.1.0"
#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 LeasePool as a Cake Addin #addin nuget:?package=LeasePool&version=0.1.0 // Install LeasePool as a Cake Tool #tool nuget:?package=LeasePool&version=0.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
LeasePool - V0.1.0
A simple, configurable, thread-safe Object Pool. Provides a mechanism for constructing, validating, and disposing of objects on the fly, as well limiting the maximum number of total instaiated object and auto-disposal of stale objects.
Usage
using LeasePool;
ILeasePool<Connection> pool = new LeasePool<Connection>(
new LeasePoolConfig<Connection>()
{
// Allow a maximum of 10 connections to be open at once.
MaxLeases = 10,
// Automatically dispose of stale connections after 30 seconds.
IdleTimeout = TimeSpan.FromSeconds(30),
// Function to construct a new connection.
Initializer = () => {
var connection = new Connection("hostname", "username", "password");
connection.Open();
return connection;
},
// Ensure that the connection is valid before leasing.
Validator = (connection) => connection.IsConnected(),
// Clear the history of the connection when returned to the pool.
OnReturn = (connection) => connection.ClearHistory(),
// Not actually needed, as the default Finalizer will
// Call Dispose if T is IDisposable. Just for demo purposes.
Finalizer = (connection) => connection.Dispose()
}
);
// Get a connection from the pool, waiting up
// to 2 seconds for one to become available.
using (var connection = await pool.Lease(TimeSpan.FromSeconds(2))) {
// do something with connection
}
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. |
.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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- 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.