void InvokeCallback(IAsyncResult result) { if (result.CompletedSynchronously) { return; } AsyncInvokeContext context = (AsyncInvokeContext)result.AsyncState; WorkflowInvoker thisPtr = context.Invoker; Exception error = null; try { context.Outputs = thisPtr.EndInvoke(result); } catch (Exception e) { if (Fx.IsFatal(e)) { throw; } error = e; } thisPtr.PostInvokeCompletedAndRemove(context, error); }