private void StartSLAViolationCounter() { Task t = new Task(async() => { while (Started) { await Task.Delay(Global.Second); var needed = GetNeededHostLoadInfo(); var v = needed.Volume; if (v > 1) { var loaddiff = needed.CurrentLoad - _maxLoad; var vioCon = _containerTable.CalculateSlaViolations(loaddiff); //var vhis = _containerTable.CalculateSlaViolationsPercent(loaddiff); var vhis = (1 - (1 / v)) * 100; if (vhis != 0) { } violationHistory.Add(vhis); foreach (var conId in vioCon) { lock (_lock) { if (!violatedContainers.ContainsKey(conId)) { violatedContainers.Add(conId, 1); } else { violatedContainers[conId]++; } } } } else { //violationhistory.Add(0); } } }); t.Start(); }