Beispiel #1
0
        private static Task <int> MultipleLoaderTask(DataLoaderContext context)
        {
            var task1 = context.GetOrCreateLoader(async token =>
            {
                await Task.Delay(20, token);
                return(4);
            }).LoadAsync();

            return(task1.ContinueWith(async t1 =>
            {
                var a = t1.Result;

                var task2 = context.GetOrCreateLoader(async token =>
                {
                    await Task.Delay(20, token);
                    return 5;
                }).LoadAsync();

                return await task2.ContinueWith(t2 =>
                {
                    var b = t2.Result;

                    return a + b;
                }, TaskContinuationOptions.None);
            }, TaskContinuationOptions.None).Unwrap());
        }
Beispiel #2
0
 private static Task <int> SingleLoaderTask(DataLoaderContext context)
 => context.GetOrCreateLoader(token =>
                              Task.Run(() =>
 {
     Thread.Sleep(7);
     return(7);
 }, token)).LoadAsync();