private void OnRecordTimerCallback(object sender) { if (Interlocked.CompareExchange(ref _isRecordUpdateRunning, 1, 0) == 0) { try { if (_recordContext.ChangeTracker.HasChanges()) { int count = _recordContext.SaveChanges(); if (count != 0) { _logger.LogInformation("recordContext SaveChanges {0}", count); } } } catch (Exception ex) { _logger.LogError("{0},{1}", ex.Message, ex.StackTrace); } Interlocked.Exchange(ref _isRecordUpdateRunning, 0); } }