private async Task PerformMeasurement() { var sessionSamples = _model.Length * _config.SampleRate; for (var i = 0; i < SessionStarts.Count; ++i) { if (_model.Type == MeasurementType.ECG) { var session = new Session(_iotDeviceService, _logger, _config.Samples) { SessionData = EcgData.Take(sessionSamples).Skip(i * sessionSamples).ToList(), Id = i + 1, MeasurementId = _model.Id, Type = MessageType.Ecg }; await session.SendPackages(); } var sleepTime = (SessionStarts.ElementAt(i + 1) - DateTime.UtcNow).Milliseconds; Thread.Sleep(sleepTime); } }