Exemple #1
0
 public TResult Call <TResult>(RecursiveCallResult <TResult> result)
 {
     if (_context != RecursiveCallContext.Context)
     {
         throw new InvalidOperationException("context mismatch");
     }
     result.IsOwnerOfCtx = true;
     if (result.IsCompleted)
     {
         return(result.GetAwaiter().GetResult());
     }
     foreach (var action in _context.WillDoAction.GetConsumingEnumerable())
     {
         action();
     }
     return(result.GetAwaiter().GetResult());
 }
Exemple #2
0
 public RecursiveCallResultAwaiter GetAwaiter() => new RecursiveCallResultAwaiter(Base.GetAwaiter());