diff --git a/ArchiSteamFarm/ArchiWebHandler.cs b/ArchiSteamFarm/ArchiWebHandler.cs index f498a113b..57b8f7646 100644 --- a/ArchiSteamFarm/ArchiWebHandler.cs +++ b/ArchiSteamFarm/ArchiWebHandler.cs @@ -134,7 +134,7 @@ namespace ArchiSteamFarm { bool? isLoggedIn = await IsLoggedIn().ConfigureAwait(false); if (isLoggedIn.HasValue && !isLoggedIn.Value) { Logging.LogGenericInfo("Reconnecting because our sessionID expired!", Bot.BotName); - var restart = Task.Run(async () => await Bot.Restart().ConfigureAwait(false)); + Task.Run(async () => await Bot.Restart().ConfigureAwait(false)).Forget(); return true; } diff --git a/ArchiSteamFarm/Bot.cs b/ArchiSteamFarm/Bot.cs index 21957af1e..6a00775ff 100755 --- a/ArchiSteamFarm/Bot.cs +++ b/ArchiSteamFarm/Bot.cs @@ -355,7 +355,7 @@ namespace ArchiSteamFarm { if (!KeepRunning) { KeepRunning = true; - var handleCallbacks = Task.Run(() => HandleCallbacks()); + Task.Run(() => HandleCallbacks()).Forget(); } Logging.LogGenericInfo("Starting...", BotName); @@ -1183,7 +1183,7 @@ namespace ArchiSteamFarm { Trading.CheckTrades(); - var start = Task.Run(async () => await CardsFarmer.StartFarming().ConfigureAwait(false)); + Task.Run(async () => await CardsFarmer.StartFarming().ConfigureAwait(false)).Forget(); break; case EResult.NoConnection: case EResult.ServiceUnavailable: diff --git a/ArchiSteamFarm/CardsFarmer.cs b/ArchiSteamFarm/CardsFarmer.cs index 4fd972c03..b0d25ecb4 100755 --- a/ArchiSteamFarm/CardsFarmer.cs +++ b/ArchiSteamFarm/CardsFarmer.cs @@ -51,12 +51,14 @@ namespace ArchiSteamFarm { internal CardsFarmer(Bot bot) { Bot = bot; - Timer = new Timer( - async e => await CheckGamesForFarming().ConfigureAwait(false), - null, - TimeSpan.FromMinutes(15), // Delay - TimeSpan.FromMinutes(60) // Period - ); + if (Timer == null) { + Timer = new Timer( + async e => await CheckGamesForFarming().ConfigureAwait(false), + null, + TimeSpan.FromMinutes(15), // Delay + TimeSpan.FromMinutes(60) // Period + ); + } } internal static List GetGamesToFarmSolo(ConcurrentDictionary gamesToFarm) { @@ -98,7 +100,7 @@ namespace ArchiSteamFarm { await StopFarming().ConfigureAwait(false); } else { Logging.LogGenericInfo("Now running in Automatic Farming mode", Bot.BotName); - var start = Task.Run(async () => await StartFarming().ConfigureAwait(false)); + Task.Run(async () => await StartFarming().ConfigureAwait(false)).Forget(); } return true; diff --git a/ArchiSteamFarm/Program.cs b/ArchiSteamFarm/Program.cs index 93a156116..70f36cc48 100644 --- a/ArchiSteamFarm/Program.cs +++ b/ArchiSteamFarm/Program.cs @@ -104,10 +104,10 @@ namespace ArchiSteamFarm { internal static async Task LimitSteamRequestsAsync() { await SteamSemaphore.WaitAsync().ConfigureAwait(false); - var releaseLater = Task.Run(async () => { + Task.Run(async () => { await Utilities.SleepAsync(7000).ConfigureAwait(false); // We must add some delay to not get caught by Steam rate limiter SteamSemaphore.Release(); - }); + }).Forget(); } internal static string GetUserInput(string botLogin, EUserInputType userInputType, string extraInformation = null) { diff --git a/ArchiSteamFarm/Trading.cs b/ArchiSteamFarm/Trading.cs index 84250d419..fcd9bb2ec 100644 --- a/ArchiSteamFarm/Trading.cs +++ b/ArchiSteamFarm/Trading.cs @@ -39,10 +39,10 @@ namespace ArchiSteamFarm { internal static async Task LimitInventoryRequestsAsync() { await InventorySemaphore.WaitAsync().ConfigureAwait(false); - var releaseLater = Task.Run(async () => { + Task.Run(async () => { await Utilities.SleepAsync(3000).ConfigureAwait(false); // We must add some delay to not get caught by Steam rate limiter InventorySemaphore.Release(); - }); + }).Forget(); } internal Trading(Bot bot) { diff --git a/ArchiSteamFarm/Utilities.cs b/ArchiSteamFarm/Utilities.cs index d5c43cc4c..00697ae50 100644 --- a/ArchiSteamFarm/Utilities.cs +++ b/ArchiSteamFarm/Utilities.cs @@ -27,6 +27,8 @@ using System.Threading.Tasks; namespace ArchiSteamFarm { internal static class Utilities { + internal static void Forget(this Task task) { } + internal static async Task SleepAsync(int miliseconds) { await Task.Delay(miliseconds).ConfigureAwait(false); }