From f7d005ccd1596947d1a8d03650ec58f8aaedb073 Mon Sep 17 00:00:00 2001 From: RaidMax Date: Sun, 9 Apr 2023 14:07:50 -0500 Subject: [PATCH] update/rename notifyafterdelay to ExecuteAfterDelay --- SharedLibraryCore/Utilities.cs | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/SharedLibraryCore/Utilities.cs b/SharedLibraryCore/Utilities.cs index 57ebd724..41437d4d 100644 --- a/SharedLibraryCore/Utilities.cs +++ b/SharedLibraryCore/Utilities.cs @@ -25,6 +25,7 @@ using SharedLibraryCore.Helpers; using SharedLibraryCore.Interfaces; using SharedLibraryCore.Localization; using SharedLibraryCore.RCon; +using static System.Threading.Tasks.Task; using static SharedLibraryCore.Server; using static Data.Models.Client.EFClient; using static Data.Models.EFPenalty; @@ -886,7 +887,7 @@ namespace SharedLibraryCore { if (delay != null) { - await Task.Delay(delay.Value); + await Delay(delay.Value); } var response = await server.RemoteConnection.SendQueryAsync(StaticHelpers.QueryType.GET_INFO); @@ -1053,7 +1054,7 @@ namespace SharedLibraryCore public static async Task WithWaitCancellation(this Task task, CancellationToken cancellationToken) { - var completedTask = await Task.WhenAny(task, Task.Delay(Timeout.Infinite, cancellationToken)); + var completedTask = await WhenAny(task, Delay(Timeout.Infinite, cancellationToken)); if (completedTask == task) { await task; @@ -1068,7 +1069,7 @@ namespace SharedLibraryCore public static async Task WithWaitCancellation(this Task task, CancellationToken cancellationToken) { - var completedTask = await Task.WhenAny(task, Task.Delay(Timeout.Infinite, cancellationToken)); + var completedTask = await WhenAny(task, Delay(Timeout.Infinite, cancellationToken)); if (completedTask == task) { return await task; @@ -1080,13 +1081,13 @@ namespace SharedLibraryCore public static async Task WithTimeout(this Task task, TimeSpan timeout) { - await Task.WhenAny(task, Task.Delay(timeout)); + await WhenAny(task, Delay(timeout)); return await task; } public static async Task WithTimeout(this Task task, TimeSpan timeout) { - await Task.WhenAny(task, Task.Delay(timeout)); + await WhenAny(task, Delay(timeout)); } public static bool ShouldHideLevel(this Permission perm) @@ -1303,7 +1304,7 @@ namespace SharedLibraryCore serviceProvider.GetRequiredService>(); var configuration = - Task.Run(() => configurationHandler.Get(fileName ?? typeof(TConfigurationType).Name, defaultConfig)) + Run(() => configurationHandler.Get(fileName ?? typeof(TConfigurationType).Name, defaultConfig)) .GetAwaiter().GetResult(); if (typeof(TConfigurationType).GetInterface(nameof(IBaseConfiguration)) is not null && @@ -1316,7 +1317,7 @@ namespace SharedLibraryCore if (defaultConfig is not null && configuration is null) { - Task.Run(() => configurationHandler.Set(defaultConfig)).GetAwaiter().GetResult(); + Run(() => configurationHandler.Set(defaultConfig)).GetAwaiter().GetResult(); configuration = defaultConfig; } @@ -1332,17 +1333,20 @@ namespace SharedLibraryCore return serviceCollection; } - public static void NotifyAfterDelay(TimeSpan duration, Func action) => - NotifyAfterDelay((int)duration.TotalMilliseconds, action); + public static void ExecuteAfterDelay(TimeSpan duration, Func action, CancellationToken token = default) => + ExecuteAfterDelay((int)duration.TotalMilliseconds, action, token); - public static void NotifyAfterDelay(int delayMs, Func action) + public static void ExecuteAfterDelay(int delayMs, Func action, CancellationToken token = default) { - Task.Run(async () => + // ReSharper disable once MethodSupportsCancellation +#pragma warning disable CA2016 + _ = Run(async () => +#pragma warning restore CA2016 { try { - await Task.Delay(delayMs); - await action(); + await Delay(delayMs, token); + await action(token); } catch { @@ -1350,5 +1354,8 @@ namespace SharedLibraryCore } }); } + + public static void ExecuteAfterDelay(this Func action, int delayMs, + CancellationToken token = default) => ExecuteAfterDelay(delayMs, action, token); } }