AsyncActionFactory<TTuple> Class
Definition
- Assemblies
- Cuemon.Core.dll
Provides a way of invoking an Action delegate regardless of the amount of parameters provided.
public sealed class AsyncActionFactory<TTuple> : MutableTupleFactory<TTuple> where TTuple : MutableTuple
Type Parameters
TTupleThe type of the n-tuple representation of a MutableTuple.
- Inheritance
-
MutableTupleFactory<TTuple>AsyncActionFactory<TTuple>
- Inherited Members
Examples
AsyncActionFactory<T> encapsulates a deferred asynchronous action with typed arguments, with support for cloning for safe concurrent execution. This example creates a factory using AsyncActionFactory.Create<string, int> with a lambda that takes a channel name ("orders") and retry count (3), delays 10ms, and prints them, then calls ExecuteMethodAsync to run it. Key steps include cloning the factory via (AsyncActionFactory<MutableTuple<string, int>>)factory.Clone() and executing the clone separately. Console output displays "orders:3" for both the original and cloned execution, confirming that cloned factories produce identical results.
using System;
using System.Threading;
using System.Threading.Tasks;
using Cuemon;
using Cuemon.Threading;
namespace MyApp.Examples;
public static class AsyncActionFactoryExample
{
public static async Task DemonstrateAsync()
{
var factory = AsyncActionFactory.Create<string, int>(
async (channel, retryCount, cancellationToken) =>
{
await Task.Delay(10, cancellationToken).ConfigureAwait(false);
Console.WriteLine($"{channel}:{retryCount}");
},
"orders",
3);
await factory.ExecuteMethodAsync(CancellationToken.None);
var clone = (AsyncActionFactory<MutableTuple<string, int>>)factory.Clone();
await clone.ExecuteMethodAsync(CancellationToken.None);
}
}
Constructors
| Name | Description |
|---|---|
| AsyncActionFactory(Func<TTuple, CancellationToken, Task>, TTuple) | Initializes a new instance of the AsyncActionFactory<TTuple> class. |
| AsyncActionFactory(Func<TTuple, CancellationToken, Task>, TTuple, Delegate) | Initializes a new instance of the AsyncActionFactory<TTuple> class. |
Methods
| Name | Description |
|---|---|
| Clone() | Creates a shallow copy of the current AsyncActionFactory<TTuple> object. |
| ExecuteMethodAsync(CancellationToken) | Executes the delegate associated with this instance. |