示例#1
0
        private IAsyncResult BeginInvokeSynchronousActionMethod(
            ControllerContext controllerContext,
            ActionDescriptor actionDescriptor,
            IDictionary <string, object> parameters,
            AsyncCallback callback,
            object state
            )
        {
            // Frequently called so ensure delegate remains static and arguments do not allocate
            EndInvokeDelegate <ActionInvocation, ActionResult> endInvokeFunc = (
                asyncResult,
                innerInvokeState
                ) =>
            {
                return(innerInvokeState.InvokeSynchronousActionMethod());
            };
            ActionInvocation endInvokeState = new ActionInvocation(
                this,
                controllerContext,
                actionDescriptor,
                parameters
                );

            return(AsyncResultWrapper.BeginSynchronous(
                       callback,
                       state,
                       endInvokeFunc,
                       endInvokeState,
                       _invokeActionMethodTag
                       ));
        }
示例#2
0
 private IAsyncResult BeginInvokeSynchronousActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary <string, object> parameters, AsyncCallback callback, object state)
 {
     return(AsyncResultWrapper.BeginSynchronous(callback, state,
                                                () => InvokeSynchronousActionMethod(controllerContext, actionDescriptor, parameters),
                                                _invokeActionMethodTag));
 }