Fixing possible Deadlock in AutoCleanForm

This commit is contained in:
FlorianDahn 2021-10-17 15:39:31 +02:00
parent 5bb316d874
commit 8e29652148

View File

@ -149,9 +149,16 @@ namespace TelegramBotBase.Form
try
{
parallelQuery.ForAll(i =>
{
try
{
Device.DeleteMessage(i).GetAwaiter().GetResult();
deletedMessages.Add(i);
}
catch (ApiRequestException req) when (req.ErrorCode == 400)
{
deletedMessages.Add(i);
}
});
}
catch (AggregateException ex)
@ -160,7 +167,7 @@ namespace TelegramBotBase.Form
var retryAfterSeconds = ex.InnerExceptions
.Where(e => e is ApiRequestException apiEx && apiEx.ErrorCode == 429)
.Max(e =>(int?) ((ApiRequestException)e).Parameters.RetryAfter) ?? 0;
.Max(e => (int?)((ApiRequestException)e).Parameters.RetryAfter) ?? 0;
retryAfterTask = Task.Delay(retryAfterSeconds * 1000);
}
@ -182,9 +189,16 @@ namespace TelegramBotBase.Form
try
{
parallelQuery.ForAll(i =>
{
try
{
Device.DeleteMessage(i).GetAwaiter().GetResult();
deletedMessages.Add(i);
}
catch (ApiRequestException req) when (req.ErrorCode == 400)
{
deletedMessages.Add(i);
}
});
}
catch (AggregateException ex)