public override async void pollPositions(object source, ElapsedEventArgs e) { if (pollingPositions) { return; } else { pollingPositions = true; } try { Dictionary <String, Decimal> positions = await api.GetAmountsAsync(); foreach (var pos in positions) { var coinType = pos.Key; var balance = pos.Value; String symbol = exchangeUSD(coinType.ToString()); if (dctExchangeProducts.ContainsKey(symbol)) { CProduct product = dctExchangeProducts[symbol]; product.TimeStampLastBalance = DateTime.Now; Double dbal = 0; Double.TryParse(balance.ToString(), out dbal); product.SetBalance(dbal); product.updateGUI(); } } } catch (Exception ex) { server.AddLog(ex.Message); } pollingPositions = false; }