Added flag not to avoid parallel update of server status

This commit is contained in:
Daniel Schick 2023-07-10 10:40:45 +02:00
parent 1da414a782
commit 59e51cd586

View File

@ -27,6 +27,7 @@ namespace ENI2.Controls
private readonly static ILog _log = LogManager.GetLogger("ServerStatus"); private readonly static ILog _log = LogManager.GetLogger("ServerStatus");
private ProgressBar _updateProgressBar; private ProgressBar _updateProgressBar;
private TextBlock _updateTextBlock; private TextBlock _updateTextBlock;
private bool _isUpdating = false;
public ServerStatusControl() public ServerStatusControl()
{ {
@ -43,6 +44,8 @@ namespace ENI2.Controls
internal void Update(LockingServiceReference.ServerStatus serverStatus) internal void Update(LockingServiceReference.ServerStatus serverStatus)
{ {
if (this._isUpdating) return;
_isUpdating = true;
int totalNum = serverStatus.IMPFiles.Length + serverStatus.READYFiles.Length + serverStatus.CORRUPTFiles.Length; int totalNum = serverStatus.IMPFiles.Length + serverStatus.READYFiles.Length + serverStatus.CORRUPTFiles.Length;
entries.Clear(); entries.Clear();
BackgroundWorker bgWorker = new BackgroundWorker(); BackgroundWorker bgWorker = new BackgroundWorker();
@ -93,10 +96,10 @@ namespace ENI2.Controls
tmpList.Sort(); tmpList.Sort();
System.Windows.Application.Current.Dispatcher.Invoke(delegate { //System.Windows.Application.Current.Dispatcher.Invoke(delegate {
foreach (StatusEntry se in tmpList) foreach (StatusEntry se in tmpList)
entries.Add(se); entries.Add(se);
}); //});
}; };
bgWorker.RunWorkerCompleted += (o, e) => bgWorker.RunWorkerCompleted += (o, e) =>
@ -113,6 +116,8 @@ namespace ENI2.Controls
this.labelStatusTransmitter.Content = transmitter.ToString(); this.labelStatusTransmitter.Content = transmitter.ToString();
this.busyIndicator.IsBusy = false; this.busyIndicator.IsBusy = false;
_isUpdating = false;
}; };
this.busyIndicator.IsBusy = true; this.busyIndicator.IsBusy = true;