public async Task EndAsync() { Console.WriteLine("Gracefully shutting down..."); if (_walletJob != null) { _walletJob.StateChanged -= _walletJob_StateChanged; _walletJob.Tracker.TrackedTransactions.CollectionChanged -= TrackedTransactions_CollectionChanged; } _cts.Cancel(); await Task.WhenAll(_walletJobTask).ConfigureAwait(false); Tor.Kill(); }
public async Task EndAsync() { if (_endCalled) { return; } _endCalled = true; Console.WriteLine("Gracefully shutting down..."); if (_walletJob != null) { _walletJob.StateChanged -= _walletJob_StateChanged; (await _walletJob.GetTrackerAsync()).TrackedTransactions.CollectionChanged -= TrackedTransactions_CollectionChangedAsync; } _cts.Cancel(); await Task.WhenAll(_walletJobTask); Tor.Kill(); _cts?.Dispose(); _walletJobTask?.Dispose(); }