public ExecuteAsyncResult(InvokeMethodInstanceData instance, AsyncWaitCallbackMethodExecutor executor, AsyncCallback callback, object state) : base(callback, state) { this.instance = instance; this.executor = executor; ActionItem.Schedule(asyncExecute, this); }
protected override void EndMakeMethodCall(AsyncCodeActivityContext context, IAsyncResult result) { InvokeMethodInstanceData instance = (InvokeMethodInstanceData)context.UserState; instance.ReturnValue = InvokeAndUnwrapExceptions(this.endFunc, instance.TargetObject, new object[] { result }); this.SetOutArgumentAndReturnValue(context, instance.ReturnValue, instance.ActualParameters); }
protected override IAsyncResult BeginMakeMethodCall(AsyncCodeActivityContext context, object target, AsyncCallback callback, object state) { InvokeMethodInstanceData instance = new InvokeMethodInstanceData { TargetObject = target, ActualParameters = EvaluateAndPackParameters(context, this.asyncMethod, false), }; return(new ExecuteAsyncResult(instance, this, callback, state)); }
protected override void EndMakeMethodCall(AsyncCodeActivityContext context, IAsyncResult result) { InvokeMethodInstanceData instance = ExecuteAsyncResult.End(result); if (instance.ExceptionWasThrown) { throw FxTrace.Exception.AsError(instance.Exception); } else { this.SetOutArgumentAndReturnValue(context, instance.ReturnValue, instance.ActualParameters); } }
protected override IAsyncResult BeginMakeMethodCall(AsyncCodeActivityContext context, object target, AsyncCallback callback, object state) { InvokeMethodInstanceData instance = new InvokeMethodInstanceData { TargetObject = target, ActualParameters = EvaluateAndPackParameters(context, this.beginMethod, true), }; int count = instance.ActualParameters.Length; instance.ActualParameters[count - 2] = callback; instance.ActualParameters[count - 1] = state; context.UserState = instance; return((IAsyncResult)this.InvokeAndUnwrapExceptions(this.beginFunc, target, instance.ActualParameters)); }
protected override IAsyncResult BeginMakeMethodCall(AsyncCodeActivityContext context, object target, AsyncCallback callback, object state) { InvokeMethodInstanceData instance = new InvokeMethodInstanceData { TargetObject = target, ActualParameters = EvaluateAndPackParameters(context, this.asyncMethod, false), }; return new ExecuteAsyncResult(instance, this, callback, state); }
protected override IAsyncResult BeginMakeMethodCall(AsyncCodeActivityContext context, object target, AsyncCallback callback, object state) { InvokeMethodInstanceData instance = new InvokeMethodInstanceData { TargetObject = target, ActualParameters = EvaluateAndPackParameters(context, this.beginMethod, true), }; int count = instance.ActualParameters.Length; instance.ActualParameters[count - 2] = callback; instance.ActualParameters[count - 1] = state; context.UserState = instance; return (IAsyncResult)this.InvokeAndUnwrapExceptions(this.beginFunc, target, instance.ActualParameters); }