public IAsyncResult BeginTryReceiveRequest(TimeSpan timeout, AsyncCallback callback, object state)
            {
                TryReceiveRequestAsyncResult result = new TryReceiveRequestAsyncResult(this, timeout, callback, state);

                result.Begin();
                return(result);
            }
                public static bool End(IAsyncResult result, out RequestContext requestContext)
                {
                    TryReceiveRequestAsyncResult thisPtr = AsyncResult.End <TryReceiveRequestAsyncResult>(result);

                    requestContext = thisPtr.RequestContext;
                    return(thisPtr._returnValue);
                }
            public static bool End(IAsyncResult result, out RequestContext context)
            {
                AsyncResult.End <TryReceiveRequestAsyncResult>(result);
                TryReceiveRequestAsyncResult typedResult = (TryReceiveRequestAsyncResult)result;

                context = typedResult.context;
                return(!typedResult.timedout);
            }
        public RequestContext EndReceiveRequest(IAsyncResult result)
        {
            RequestContext context;

            if (!TryReceiveRequestAsyncResult.End(result, out context))
            {
                throw new TimeoutException();
            }
            return(context);
        }
Example #5
0
 public static bool End(IAsyncResult result, out RequestContext requestContext)
 {
     try
     {
         TryReceiveRequestAsyncResult thisPtr = AsyncResult.End <TryReceiveRequestAsyncResult>(result);
         requestContext = thisPtr.requestContext;
         return(thisPtr.receiveSuccess);
     }
     catch (CommunicationException)
     {
         requestContext = null;
         return(false);
     }
 }
Example #6
0
            static void OnReceiveRequest(IAsyncResult result)
            {
                if (result.CompletedSynchronously)
                {
                    return;
                }

                TryReceiveRequestAsyncResult thisPtr = (TryReceiveRequestAsyncResult)result.AsyncState;
                Exception completionException        = null;

                try
                {
                    thisPtr.CompleteReceiveRequest(result);
                }
                catch (TimeoutException)
                {
                }
                catch (Exception e)
                {
                    completionException = e;
                }

                thisPtr.Complete(false, completionException);
            }
 public bool EndTryReceiveRequest(IAsyncResult result, out RequestContext requestContext)
 {
     return(TryReceiveRequestAsyncResult.End(result, out requestContext));
 }