Exemplo n.º 1
0
 /// <summary>
 /// Triggered when the slow timer ticks
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnSlowTimerTick(object sender, EventArgs e)
 {
     if (_updateCandlesTask == null || _updateCandlesTask.IsCompleted || _updateCandlesTask.IsFaulted || _updateCandlesTask.IsCanceled)
     {
         if (DateTime.UtcNow.Subtract(_lastUpdate).TotalSeconds >= 5)
         {
             int period     = dataSelector.SelectedPeriodInMin;
             var fromDate   = dataSelector.FromDate;
             var updateTask = Task.Factory.StartNew(() => { UpdateCandles(fromDate, period, _selectedPair); });
             _updateCandlesTask = updateTask.ContinueWith(_ =>
             {
                 if (_candles.Count > 0)
                 {
                     myChartControl.DrawChart(_candles, Constants.PriceSerieName);
                 }
             }, CancellationToken.None, TaskContinuationOptions.None, TaskScheduler.FromCurrentSynchronizationContext())
                                  .ContinueWith(t =>
             {
                 if (_strategy != null)
                 {
                     _strategy.OnTick(_candles);
                 }
             });
         }
     }
     else if (_updateCandlesTask != null)
     {
         lblStatus.Text = lblStatus.Text + ".";
     }
 }