コード例 #1
0
        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 += ";";
            }
        }
コード例 #2
0
        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
            }
        }
コード例 #3
0
        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());
        }