Ejemplo n.º 1
0
        public async Task CallOtherLongRunningTaskWithLocalToken(ILongRunningTaskGrain <T> target, TimeSpan delay, TimeSpan delayBeforeCancel)
        {
            var tcs  = new GrainCancellationTokenSource();
            var task = target.LongWait(tcs.Token, delay);
            await Task.Delay(delayBeforeCancel);

            await tcs.Cancel();

            await task;
        }
Ejemplo n.º 2
0
        public async Task <bool> CallOtherCancellationTokenCallbackResolve(ILongRunningTaskGrain <T> target)
        {
            var tc        = new GrainCancellationTokenSource();
            var grainTask = target.CancellationTokenCallbackResolve(tc.Token);
            await Task.Delay(300);

            await tc.Cancel();

            return(await grainTask);
        }
Ejemplo n.º 3
0
        public async Task <T> FanOutOtherLongRunningTask(ILongRunningTaskGrain <T> target, T t, TimeSpan delay, int degreeOfParallelism)
        {
            var promises = Enumerable
                           .Range(0, degreeOfParallelism)
                           .Select(_ => target.LongRunningTask(t, delay))
                           .ToList();

            await Task.WhenAll(promises);

            return(t);
        }
Ejemplo n.º 4
0
 public async Task <T> CallOtherLongRunningTask(ILongRunningTaskGrain <T> target, T t, TimeSpan delay)
 {
     return(await target.LongRunningTask(t, delay));
 }
Ejemplo n.º 5
0
 public async Task CallOtherLongRunningTask(ILongRunningTaskGrain <T> target, GrainCancellationToken tc, TimeSpan delay)
 {
     await target.LongWait(tc, delay);
 }