VOOZH about

URL: https://www.nuget.org/packages/NetEvolve.Extensions.Tasks/

⇱ NuGet Gallery | NetEvolve.Extensions.Tasks 2.1.227




👁 Image
NetEvolve.Extensions.Tasks 2.1.227

Prefix Reserved
dotnet add package NetEvolve.Extensions.Tasks --version 2.1.227
 
 
NuGet\Install-Package NetEvolve.Extensions.Tasks -Version 2.1.227
 
 
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="NetEvolve.Extensions.Tasks" Version="2.1.227" />
 
 
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NetEvolve.Extensions.Tasks" Version="2.1.227" />
 
Directory.Packages.props
<PackageReference Include="NetEvolve.Extensions.Tasks" />
 
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NetEvolve.Extensions.Tasks --version 2.1.227
 
 
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: NetEvolve.Extensions.Tasks, 2.1.227"
 
 
#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.
#:package NetEvolve.Extensions.Tasks@2.1.227
 
 
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NetEvolve.Extensions.Tasks&version=2.1.227
 
Install as a Cake Addin
#tool nuget:?package=NetEvolve.Extensions.Tasks&version=2.1.227
 
Install as a Cake Tool
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

NetEvolve.Extensions.Tasks

👁 NuGet

A lightweight library providing extension methods for Task, Task<T>, ValueTask, and ValueTask<T> to simplify asynchronous programming patterns in .NET applications.

Part of the Daily DevOps & .NET - NetEvolve project, which aims to provide a set of useful libraries for .NET developers.

📦 Installation

dotnet add package NetEvolve.Extensions.Tasks

🎯 Features

  • Timeout Support: Execute async operations with configurable timeout handling
  • Multi-Framework Support: Compatible with .NET Standard 2.0, .NET 8.0, .NET 9.0, and .NET 10.0
  • Lightweight: Minimal dependencies, focused on essential functionality
  • Modern: Supports both Task and ValueTask patterns

🚀 Usage

WithTimeoutAsync

Execute asynchronous operations with a timeout. Returns true if the operation completes within the specified timeout, false otherwise.

Task with Timeout (milliseconds)
using NetEvolve.Extensions.Tasks;

var task = SomeAsyncOperation();
var completed = await task.WithTimeoutAsync(5000); // 5 seconds timeout

if (completed)
{
 Console.WriteLine("Operation completed successfully");
}
else
{
 Console.WriteLine("Operation timed out");
}
Task with Timeout (TimeSpan)
using NetEvolve.Extensions.Tasks;

var task = SomeAsyncOperation();
var completed = await task.WithTimeoutAsync(TimeSpan.FromSeconds(5));

if (completed)
{
 Console.WriteLine("Operation completed successfully");
}
else
{
 Console.WriteLine("Operation timed out");
}
Task<T> with Timeout
using NetEvolve.Extensions.Tasks;

var task = GetDataAsync();
var completed = await task.WithTimeoutAsync(3000);

if (completed)
{
 var result = await task; // Safe to await again, already completed
 Console.WriteLine($"Result: {result}");
}
else
{
 Console.WriteLine("Operation timed out");
}
ValueTask with Timeout
using NetEvolve.Extensions.Tasks;

ValueTask operation = PerformAsyncOperation();
var completed = await operation.WithTimeoutAsync(TimeSpan.FromSeconds(10));

if (!completed)
{
 Console.WriteLine("Operation did not complete in time");
}
With CancellationToken
using NetEvolve.Extensions.Tasks;

var cts = new CancellationTokenSource();
var task = LongRunningOperation();

try
{
 var completed = await task.WithTimeoutAsync(5000, cts.Token);
 if (!completed)
 {
 Console.WriteLine("Timeout occurred");
 }
}
catch (OperationCanceledException)
{
 Console.WriteLine("Operation was cancelled");
}

📚 API Reference

Extension Methods

All extension methods are available for:

  • Task
  • Task<T>
  • ValueTask
  • ValueTask<T>
WithTimeoutAsync(int, CancellationToken)

Waits for a task to complete within the specified timeout in milliseconds.

Parameters:

  • timeoutInMilliseconds (int): Timeout in milliseconds. Use Timeout.Infinite (-1) to wait indefinitely.
  • cancellationToken (CancellationToken): Optional cancellation token.

Returns: Task<bool> - true if the operation completed within the timeout, false otherwise.

Exceptions:

  • ArgumentNullException: If the task is null.
  • ArgumentOutOfRangeException: If timeout is less than -1.
  • OperationCanceledException: If the operation is cancelled via the cancellation token.
WithTimeoutAsync(TimeSpan, CancellationToken)

Waits for a task to complete within the specified timeout.

Parameters:

  • timeout (TimeSpan): Timeout duration. Use Timeout.InfiniteTimeSpan to wait indefinitely.
  • cancellationToken (CancellationToken): Optional cancellation token.

Returns: Task<bool> - true if the operation completed within the timeout, false otherwise.

Exceptions:

  • ArgumentNullException: If the task is null.
  • ArgumentOutOfRangeException: If timeout is less than Timeout.InfiniteTimeSpan.
  • OperationCanceledException: If the operation is cancelled via the cancellation token.

🎓 Best Practices

  1. Check the return value: Always check if the operation completed successfully before accessing results.
  2. Use TimeSpan for clarity: Prefer TimeSpan overloads for better readability in production code.
  3. Handle cancellation: Consider using CancellationToken for graceful shutdown scenarios.
  4. Don't ignore timeouts: Log or handle timeout scenarios appropriately in your application.

🔗 Related Projects

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📞 Support

For issues, questions, or contributions, please visit the GitHub repository.

Product Versions Compatible and additional computed target framework versions.
.NET net5.0 net5.0 was computed.  net5.0-windows net5.0-windows was computed.  net6.0 net6.0 is compatible.  net6.0-android net6.0-android was computed.  net6.0-ios net6.0-ios was computed.  net6.0-maccatalyst net6.0-maccatalyst was computed.  net6.0-macos net6.0-macos was computed.  net6.0-tvos net6.0-tvos was computed.  net6.0-windows net6.0-windows was computed.  net7.0 net7.0 is compatible.  net7.0-android net7.0-android was computed.  net7.0-ios net7.0-ios was computed.  net7.0-maccatalyst net7.0-maccatalyst was computed.  net7.0-macos net7.0-macos was computed.  net7.0-tvos net7.0-tvos was computed.  net7.0-windows net7.0-windows was computed.  net8.0 net8.0 is compatible.  net8.0-android net8.0-android was computed.  net8.0-browser net8.0-browser was computed.  net8.0-ios net8.0-ios was computed.  net8.0-maccatalyst net8.0-maccatalyst was computed.  net8.0-macos net8.0-macos was computed.  net8.0-tvos net8.0-tvos was computed.  net8.0-windows net8.0-windows was computed.  net9.0 net9.0 is compatible.  net9.0-android net9.0-android was computed.  net9.0-browser net9.0-browser was computed.  net9.0-ios net9.0-ios was computed.  net9.0-maccatalyst net9.0-maccatalyst was computed.  net9.0-macos net9.0-macos was computed.  net9.0-tvos net9.0-tvos was computed.  net9.0-windows net9.0-windows was computed.  net10.0 net10.0 is compatible.  net10.0-android net10.0-android was computed.  net10.0-browser net10.0-browser was computed.  net10.0-ios net10.0-ios was computed.  net10.0-maccatalyst net10.0-maccatalyst was computed.  net10.0-macos net10.0-macos was computed.  net10.0-tvos net10.0-tvos was computed.  net10.0-windows net10.0-windows was computed. 
.NET Core netcoreapp2.0 netcoreapp2.0 was computed.  netcoreapp2.1 netcoreapp2.1 was computed.  netcoreapp2.2 netcoreapp2.2 was computed.  netcoreapp3.0 netcoreapp3.0 was computed.  netcoreapp3.1 netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 netstandard2.0 is compatible.  netstandard2.1 netstandard2.1 was computed. 
.NET Framework net461 net461 was computed.  net462 net462 was computed.  net463 net463 was computed.  net47 net47 was computed.  net471 net471 was computed.  net472 net472 was computed.  net48 net48 was computed.  net481 net481 was computed. 
MonoAndroid monoandroid monoandroid was computed. 
MonoMac monomac monomac was computed. 
MonoTouch monotouch monotouch was computed. 
Tizen tizen40 tizen40 was computed.  tizen60 tizen60 was computed. 
Xamarin.iOS xamarinios xamarinios was computed. 
Xamarin.Mac xamarinmac xamarinmac was computed. 
Xamarin.TVOS xamarintvos xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (79)

Showing the top 5 NuGet packages that depend on NetEvolve.Extensions.Tasks:

Package Downloads
NetEvolve.HealthChecks.SqlServer

Contains HealthChecks for Microsoft SqlServer, based on the nuget package `Microsoft.Data.SqlClient`.

NetEvolve.HealthChecks.Abstractions

Contains abstract implementations for the `NetEvolve.HealthChecks`.

NetEvolve.HealthChecks.Oracle

Contains HealthChecks for Oracle Databases, based on the nuget package `Oracle.ManagedDataAccess.Core`.

NetEvolve.HealthChecks.Dapr

Contains HealthChecks for Dapr, based on the nuget package `Dapr.Client`.

NetEvolve.HealthChecks.SqlServer.Legacy

Contains HealthChecks for Microsoft SqlServer, based on the nuget package `System.Data.SqlClient`.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.1.227 9,777 5/10/2026
2.1.147 8,146 3/23/2026
2.1.0 14,077 1/4/2026
2.0.90 203 1/3/2026
2.0.75 5,439 12/31/2025
2.0.46 7,450 12/11/2025
2.0.11 6,108 11/30/2025
2.0.8 2,019 11/28/2025
2.0.0 1,283 11/21/2025
1.3.74 21,416 5/4/2025
1.3.0 7,138 12/16/2024
1.2.188 1,477 11/29/2024
1.2.113 2,225 9/12/2024
1.2.98 1,706 8/26/2024
1.2.25 5,731 5/21/2024
1.2.14 295 5/15/2024
1.2.7 928 4/8/2024
1.2.0 1,454 4/4/2024
1.1.128 753 4/2/2024
1.1.110 704 2/20/2024
Loading failed