public async Task SenderData(IRow[] dataToSend) { List <IRow> data = new List <IRow>(); var rec = new TaskExecutedList(); for (int i = 0; i < Senders.Count; i++) { Senders[i].valuesToBeSent = dataToSend; var te = new TaskExecuted(Senders[i].Send()); rec.Add(te); } //await Task.WhenAll(rec.AllTasksWithLogging()); await Task.WhenAll(rec.AllTasksWithLogging()); if (!rec.Exists(it => it.IsSuccess())) { string noData = "no data for send"; //@class.Log(LogLevel.Error,0,noData,null,null); return; } var failed = rec.Where(it => !it.IsSuccess()).ToArray(); foreach (var item in failed) { string ex = item.Exception.Message; //@class.Log(LogLevel.Error,0,$"error in send",item.Exception,null); ex += ";"; } }
public async Task Send() { var data = new List <IRow>(); var rec = new TaskExecutedList(); for (int i = 0; i < Senders.Length; i++) { Senders[i].valuesToBeSent = valuesToBeSent; var te = new TaskExecuted(Senders[i].Send()); rec.Add(te); } //await Task.WhenAll(rec.AllTasksWithLogging()); await Task.WhenAll(rec.AllTasksWithLogging()); if (!rec.Exists(it => it.IsSuccess())) { //LOG: no data return; } var failed = rec.Select(it => !it.IsSuccess()).ToArray(); foreach (var item in failed) { //LOG: exception why failed } }
async Task <IRowReceive[]> DataFromReceivers() { List <IRowReceive> data = new List <IRowReceive>(); var rec = new TaskExecutedList(); for (int i = 0; i < Receivers.Length; i++) { var te = new TaskExecuted(Receivers[i].LoadData()); rec.Add(te); } await Task.WhenAll(rec.AllTasksWithLogging()); if (!rec.Exists(it => it.IsSuccess())) { //LOG: no data return(null); } var failed = rec.Select(it => !it.IsSuccess()).ToArray(); foreach (var item in failed) { //LOG: exception why failed } for (int i = 0; i < Receivers.Length; i++) { var item = Receivers[i]; if (item.valuesRead?.Length == 0) { continue; } data.AddRange(item.valuesRead); } return(data.ToArray()); }