Beispiel #1
0
        public static ETTask <T> FromCanceled <T>(CancellationToken token)
        {
            var tcs = new ETTaskCompletionSource <T>();

            tcs.TrySetException(new OperationCanceledException(token));
            return(tcs.Task);
        }
Beispiel #2
0
        public static ETTask CompletedTask => new ETTask(); //public static ETTask CompletedTask { get { return new ETTask(); } }

        public static ETTask FromException(Exception ex)
        {
            ETTaskCompletionSource tcs = new ETTaskCompletionSource();

            tcs.TrySetException(ex);
            return(tcs.Task);
        }
Beispiel #3
0
        public static ETTask <T> FromException <T>(Exception ex)
        {
            var tcs = new ETTaskCompletionSource <T>();

            tcs.TrySetException(ex);
            return(tcs.Task);
        }
Beispiel #4
0
        public static ETTask <T> FromCanceled <T>(CancellationToken token)
        {
            var promise = new ETTaskCompletionSource <T>();

            promise.TrySetException(new OperationCanceledException(token));
            return(new ETTask <T>(promise));
        }
Beispiel #5
0
        public static ETTask <T> FromException <T>(Exception ex)
        {
            var promise = new ETTaskCompletionSource <T>();

            promise.TrySetException(ex);
            return(new ETTask <T>(promise));
        }
Beispiel #6
0
        public static ETTask FromException(Exception ex)
        {
            var promise = new ETTaskCompletionSource <AsyncUnit>();

            promise.TrySetException(ex);
            return(new ETTask(promise));
        }
Beispiel #7
0
        public ETTask <IResponse> Call(IRequest request)
        {
            int rpcId = ++RpcId;
            var tcs   = new ETTaskCompletionSource <IResponse>();

            this.requestCallback[rpcId] = (response) =>
            {
                try
                {
                    if (ErrorCode.IsRpcNeedThrowException(response.Error))
                    {
                        throw new RpcException(response.Error, response.Message);
                    }

                    tcs.TrySetResult(response);
                }
                catch (Exception e)
                {
                    tcs.TrySetException(new Exception($"Rpc Error: {request.GetType().FullName}", e));
                }
            };

            request.RpcId = rpcId;
            this.Send(0x00, request);
            return(tcs.Task);
        }
Beispiel #8
0
        // 3. SetException
        //[DebuggerHidden]
        public void SetException(Exception exception)
        {
            if (promise == null)
            {
                promise = new ETTaskCompletionSource();
            }

            if (exception is OperationCanceledException ex)
            {
                promise.TrySetCanceled(ex);
            }
            else
            {
                promise.TrySetException(exception);
            }
        }