コード例 #1
0
ファイル: AsyncOperation.cs プロジェクト: MariusUtheim/GRaff
        internal void Reject(Exception reason)
        {
            Result = Handle(reason);
            if (Result.IsSuccessful)
            {
                Accept(Result.Value);
            }
            else
            {
                State = AsyncOperationState.Failed;

                while (_continuations.TryDequeue(out var continuation))
                {
                    continuation._complete(Result);
                }
                if (IsDone)
                {
                    Async.Throw(reason);
                }


                lock (this)
                    _otherwiseClause?.Accept(reason);
            }
        }