# MinGo.AsyncExecutor **Repository Path**: fffirer/MinGo.AsyncExecutor ## Basic Information - **Project Name**: MinGo.AsyncExecutor - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-23 - **Last Updated**: 2025-12-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Usage ```cs public static class EndpointsExtensions { public static IEndpointRouteBuilder MapAsyncExecutionEndpoints(this IEndpointRouteBuilder endpoints) { endpoints.MapPost("/sync-exec", StartSyncExec); endpoints.MapGet("/sync-exec/{id}", GetSyncExecResult); endpoints.MapPost("/async-exec", StartAsyncExec); endpoints.MapGet("/async-exec/{id}", GetAsyncExecResult); endpoints.MapPost("/throw-ex", ThrowEx); endpoints.MapGet("/throw-ex/{id}", GetThrowExResult); return endpoints; } public static string ThrowEx([FromServices] IAsyncExecutor asyncExecutor) { return asyncExecutor.Start((ILoggerFactory loggerFactory) => { var logger = loggerFactory.CreateLogger("throw-ex"); logger.LogInformation("throw ex"); throw new NotImplementedException(); }); } public static void GetThrowExResult([FromRoute] string id, [FromServices] IAsyncExecutor asyncExecutor) { asyncExecutor.TryPop(id, out var _); } private static string StartSyncExec([FromServices] IAsyncExecutor asyncExecutor) { return asyncExecutor.Start((ILoggerFactory loggerFactory) => { var logger = loggerFactory.CreateLogger("sync-exec"); logger.LogInformation("sync exec"); return DateTime.UtcNow; }); } private static string StartAsyncExec([FromServices] IAsyncExecutor asyncExecutor) { return asyncExecutor.Start(async (ILoggerFactory loggerFactory) => { var logger = loggerFactory.CreateLogger("async-exec"); logger.LogInformation("async exec"); await Task.Delay(1000); return DateTimeOffset.UtcNow; }); } private static object GetSyncExecResult([FromServices] IAsyncExecutor asyncExecutor, [FromRoute] string id, CancellationToken cancellationToken) { if (asyncExecutor.TryPop(id, out var res)) { return new { Completed = true, Result = res }; } else { return new { Completed = false }; } } private static object GetAsyncExecResult([FromServices] IAsyncExecutor asyncExecutor, [FromRoute] string id, CancellationToken cancellationToken) { if (asyncExecutor.TryPop(id, out var res)) { return new { Completed = true, Result = res }; } else { return new { Completed = false }; } } } ```