void TimerHandler(object state) { lock (Timer) { if (Disposed) { return; } var elapsedTicks = DateTime.Now.Ticks - _lastReportTicks; var elapsed = TimeSpan.FromTicks(elapsedTicks); UpdateText(GetProgressBarText(CurrentProgress)); ResetTimer(); if (elapsed < TimeSpanFileStalled) { return; } FileTransferStalled?.Invoke(this, new ProgressEventArgs { LastDataReceived = new DateTime(_lastReportTicks), TimeOutTriggered = DateTime.Now }); } }
private void TimerHandler(object state) { lock (Timer) { if (IsDisposed) { return; } var elapsedTicks = DateTime.Now.Ticks - _lastReportTicks; var elapsed = TimeSpan.FromTicks(elapsedTicks); UpdateText(GetProgressBarText()); RestartTimer(); if (elapsed < TimeSpanFileStalled) { return; } FileTransferStalled?.Invoke(this, new ProgressEventArgs(new DateTime(_lastReportTicks), DateTime.Now)); } }