From ae829d7942ecb69ab91d7f74739a2d0260748656 Mon Sep 17 00:00:00 2001 From: JustArchi Date: Sat, 23 Jan 2016 23:44:08 +0100 Subject: [PATCH] Fix .NET being too fast --- ArchiSteamFarm/Bot.cs | 3 ++- ArchiSteamFarm/CardsFarmer.cs | 7 +++++-- ArchiSteamFarm/Trading.cs | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ArchiSteamFarm/Bot.cs b/ArchiSteamFarm/Bot.cs index ff21beb44..faee73317 100644 --- a/ArchiSteamFarm/Bot.cs +++ b/ArchiSteamFarm/Bot.cs @@ -115,7 +115,8 @@ namespace ArchiSteamFarm { internal static async Task ShutdownAllBots() { List tasks = new List(); foreach (Bot bot in Bots.Values) { - tasks.Add(Task.Run(async () => await bot.Shutdown().ConfigureAwait(false))); + Bot currentBot = bot; + tasks.Add(Task.Run(async () => await currentBot.Shutdown().ConfigureAwait(false))); } await Task.WhenAll(tasks).ConfigureAwait(false); } diff --git a/ArchiSteamFarm/CardsFarmer.cs b/ArchiSteamFarm/CardsFarmer.cs index a6528404d..6ce1dc920 100755 --- a/ArchiSteamFarm/CardsFarmer.cs +++ b/ArchiSteamFarm/CardsFarmer.cs @@ -272,7 +272,8 @@ namespace ArchiSteamFarm { if (page == 1) { CheckPage(htmlDocument); // Because we fetched page number 1 already } else { - checkPagesTasks.Add(Task.Run(async () => await CheckPage(page).ConfigureAwait(false))); + byte currentPage = page; + checkPagesTasks.Add(Task.Run(async () => await CheckPage(currentPage).ConfigureAwait(false))); } } await Task.WhenAll(checkPagesTasks).ConfigureAwait(false); @@ -286,7 +287,8 @@ namespace ArchiSteamFarm { List checkHoursTasks = new List(); Logging.LogGenericInfo(Bot.BotName, "Checking hours..."); foreach (uint appID in GamesToFarm.Keys) { - checkHoursTasks.Add(Task.Run(async () => await CheckHours(appID).ConfigureAwait(false))); + uint currentAppID = appID; + checkHoursTasks.Add(Task.Run(async () => await CheckHours(currentAppID).ConfigureAwait(false))); } await Task.WhenAll(checkHoursTasks).ConfigureAwait(false); } @@ -329,6 +331,7 @@ namespace ArchiSteamFarm { return; } + Logging.LogGenericDebug(Bot.BotName, "Checking page: " + page); HtmlDocument htmlDocument = await Bot.ArchiWebHandler.GetBadgePage(page).ConfigureAwait(false); if (htmlDocument == null) { return; diff --git a/ArchiSteamFarm/Trading.cs b/ArchiSteamFarm/Trading.cs index 8ad015c61..0cb984753 100644 --- a/ArchiSteamFarm/Trading.cs +++ b/ArchiSteamFarm/Trading.cs @@ -59,7 +59,8 @@ namespace ArchiSteamFarm { List tasks = new List(); foreach (SteamTradeOffer tradeOffer in tradeOffers) { if (tradeOffer.trade_offer_state == SteamTradeOffer.ETradeOfferState.Active) { - tasks.Add(Task.Run(async () => await ParseTrade(tradeOffer).ConfigureAwait(false))); + SteamTradeOffer currentTradeOffer = tradeOffer; + tasks.Add(Task.Run(async () => await ParseTrade(currentTradeOffer).ConfigureAwait(false))); } }