Beispiel #1
0
        public void Add <T>(Func <Task <T> > oper, Func <T, Task> forwardOutcomeOrNull)
        {
            _operations.Add(async() => {
                var outcome = await oper();

                if (forwardOutcomeOrNull != null)
                {
                    await ExecOnUiThread.ExecAsync(() => forwardOutcomeOrNull(outcome));
                }

                return(Unit.Instance);
            });
        }
Beispiel #2
0
        public void Add <InpT1, InpT2, OutT>(
            Func <Tuple <InpT1, InpT2> > input, Func <InpT1, InpT2, Task <OutT> > oper,
            Func <OutT, Task> forwardOutcomeOrNull)
        {
            _operations.Add(async() => {
                var pars    = input();
                var outcome = await oper(pars.Item1, pars.Item2);

                if (forwardOutcomeOrNull != null)
                {
                    await ExecOnUiThread.ExecAsync(() => forwardOutcomeOrNull(outcome));
                }

                return(Unit.Instance);
            });
        }