private IAsyncResult BeginInvoke(Activity workflow, IDictionary <string, object> inputs, TimeSpan timeout, WorkflowInstanceExtensionManager extensions, AsyncCallback callback, object state) { if (inputs == null) { throw FxTrace.Exception.ArgumentNull(nameof(inputs)); } TimeoutHelper.ThrowIfNegativeArgument(timeout); return(WorkflowApplication.BeginInvoke(workflow, inputs, extensions, timeout, null, null, callback, state)); }
private void InternalInvokeAsync(IDictionary <string, object> inputs, TimeSpan timeout, object userState) { var context = new AsyncInvokeContext(userState, this); if (userState != null) { AddToPendingInvokes(context); } Exception error = null; var completedSynchronously = false; try { if (invokeCallback == null) { invokeCallback = Fx.ThunkCallback(new AsyncCallback(InvokeCallback)); } context.Operation.OperationStarted(); var result = WorkflowApplication.BeginInvoke(this.workflow, inputs, this.extensions, timeout, SynchronizationContext.Current, context, invokeCallback, context); if (result.CompletedSynchronously) { context.Outputs = this.EndInvoke(result); completedSynchronously = true; } } catch (Exception e) { if (Fx.IsFatal(e)) { throw; } error = e; } if (error != null || completedSynchronously) { PostInvokeCompletedAndRemove(context, error); } }
private IAsyncResult BeginInvoke(Activity workflow, TimeSpan timeout, WorkflowInstanceExtensionManager extensions, AsyncCallback callback, object state) { TimeoutHelper.ThrowIfNegativeArgument(timeout); return(WorkflowApplication.BeginInvoke(workflow, null, extensions, timeout, null, null, callback, state)); }