private async Task <InvocationResult> InvokeCore(Func <Task <JobContinuation> > invoker) { try { var continuation = await invoker(); if (continuation != null) { return(InvocationResult.Suspended(continuation)); } else { return(InvocationResult.Completed()); } } catch (Exception ex) { return(InvocationResult.Faulted(ex)); } }