async void GetPersonnelVacantAsync() { var token = cancellationTokenSource.Token; try { await Task.Factory.StartNew(async() => { while (true) { try { personnel = rivERWebService.GetPersonnelReadRequest(Helpers.Settings.PersonnelID).Result; foreach (var request in personnel.Requests) { if (!Requests.Any(r => r.RequestID == request.RequestID)) { Requests.Add(request); } else { var alarmRequest = Requests.FirstOrDefault(r => r.RequestID == request.RequestID); alarmRequest.Alarm = request.Alarm; } } foreach (var request in Requests) { if (!personnel.Requests.Any(r => r.RequestID == request.RequestID)) { Requests.Remove(request); } } await Task.Delay(3000); } catch (Exception e) { System.Diagnostics.Debug.WriteLine("Trying to read personnel: {0}", e.Message); await Task.Delay(7000); } } }, token, TaskCreationOptions.LongRunning, TaskScheduler.Default); } catch (OperationCanceledException e) { System.Diagnostics.Debug.WriteLine("Cancel GetPersonnelVacantAsync ex {0}", e.Message); } }
async void GetPersonnelVacantAsync() { var token = cancellationTokenSource.Token; try { await Task.Factory.StartNew(async() => { while (true) { personnel = rivERWebService.GetPersonnelReadRequest(Helpers.Settings.PersonnelID).Result; foreach (var request in personnel.Requests) { if (!Requests.Any(r => r.RequestID == request.RequestID)) { Requests.Add(request); } Requests.Where(r => r.RequestID == request.RequestID) .Select(r => { r.Alarm = request.Alarm; return(r); }); } await Task.Delay(3000); if (token.IsCancellationRequested) { break; } } }, token, TaskCreationOptions.LongRunning, TaskScheduler.Default); } catch (OperationCanceledException e) { System.Diagnostics.Debug.WriteLine("Cancel GetPersonnelVacantAsync ex {0}", e.Message); } }