Мне нужно вернуть код выхода -1 из Main, если повторная попытка не удалась, поэтому (Kubernetes) его обработал, я пытаюсь вызвать исключение (Task.FromException
) из ExecuteAsync
, но сигнатура метода изменится, и ее нельзя будет изменитьот Task
до Task<T>
. Как я могу поднять Environment.Exit(-1)
в основной поток? или отмена в основной поток, чтобы я мог вернуть код выхода -1 оттуда
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
int tries = 0;
while (!stoppingToken.IsCancellationRequested && tries <= _tryOuts)
{
try
{
...
tries++;
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
...
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
break;
}
else
{
_logger.LogError(response.Message, DateTimeOffset.Now);
}
}
}
catch (Exception ex)
{
_logger.LogError(ex, ex.Message);
}
_logger.LogDebug("Worker next iteration in milliseconds {0}", _timeBetweenTryOuts);
await Task.Delay(_timeBetweenTryOuts, stoppingToken);
}
_hostApplicationLifetime.StopApplication();
}