diff --git a/DepotDownloader/ContentDownloader.cs b/DepotDownloader/ContentDownloader.cs index b1b1441b..55b9cb81 100644 --- a/DepotDownloader/ContentDownloader.cs +++ b/DepotDownloader/ContentDownloader.cs @@ -307,6 +307,8 @@ namespace DepotDownloader return false; } + Task.Run(steam3.TickCallbacks); + return true; } diff --git a/DepotDownloader/Steam3Session.cs b/DepotDownloader/Steam3Session.cs index 51b3de61..5d757df7 100644 --- a/DepotDownloader/Steam3Session.cs +++ b/DepotDownloader/Steam3Session.cs @@ -52,6 +52,7 @@ namespace DepotDownloader int connectionBackoff; int seq; // more hack fixes AuthSession authSession; + readonly CancellationTokenSource abortedToken = new(); // input readonly SteamUser.LogOnDetails logonDetails; @@ -122,6 +123,23 @@ namespace DepotDownloader return IsLoggedOn; } + public async Task TickCallbacks() + { + var token = abortedToken.Token; + + try + { + while (!token.IsCancellationRequested) + { + await callbacks.RunWaitCallbackAsync(token); + } + } + catch (OperationCanceledException) + { + // + } + } + public async Task RequestAppInfo(uint appId, bool bForce = false) { if ((AppInfo.ContainsKey(appId) && !bForce) || bAborted) @@ -345,6 +363,7 @@ namespace DepotDownloader bAborted = true; bConnecting = false; bIsConnectionRecovery = false; + abortedToken.Cancel(); steamClient.Disconnect(); Ansi.Progress(Ansi.ProgressState.Hidden);