private void InitilizeProgressTimer() { stopWatch.Start(); progressTimer = new Timer { AutoReset = false, Interval = progressInterval.TotalMilliseconds }; progressTimerOnElapsed = (sender, args) => { ProgressRecord pr; if (progressStatus.TryGetProgressRecord(out pr)) { this.progress(pr); } progressTimer.Enabled = true; }; progressTimer.Elapsed += progressTimerOnElapsed; progressTimer.Enabled = true; }
private void InitilizeProgressTimer() { stopWatch.Start(); bool throwing = false; try { progressTimer = new Timer { AutoReset = false, Interval = progressInterval.TotalMilliseconds }; progressTimerOnElapsed = (sender, args) => { ProgressRecord pr; if (progressStatus.TryGetProgressRecord(out pr)) { this.progress(pr); } progressTimer.Enabled = true; }; progressTimer.Elapsed += progressTimerOnElapsed; progressTimer.Enabled = true; } catch (Exception) { throwing = true; throw; } finally { if (throwing && progressTimer != null) { progressTimer.Elapsed -= progressTimerOnElapsed; progressTimer.Enabled = false; progressTimer.Dispose(); progressTimer = null; } } }