コード例 #1
0
 /// <summary>
 ///     Creates a cloud computation that binds a workflow to a callback.
 /// </summary>
 /// <typeparam name="TResult">Result type.</typeparam>
 /// <param name="workflow">Initial workflow to be executed.</param>
 /// <param name="continuation">Callback workflow to be executed on completion of the former.</param>
 /// <returns>A combined workflow.</returns>
 public static Cloud <TResult> Then <TResult>(this CloudAction workflow, Func <Cloud <TResult> > continuation)
 {
     return(Builder.Bind <Unit, TResult>(workflow.Body, continuation.AsFSharpFunc()));
 }
コード例 #2
0
 /// <summary>
 /// Try/Finally workflow.
 /// </summary>
 /// <typeparam name="TResult">Computation return type.</typeparam>
 /// <param name="body">The computation to execute.</param>
 /// <param name="finally">Finalizer.</param>
 public static Cloud <TResult> TryFinally <TResult>(Cloud <TResult> body, CloudAction @finally)
 {
     return(MBrace.Cloud.TryFinally(body, @finally.Body));
 }
コード例 #3
0
        /// <summary>
        ///     Creates a cloud computation that binds a workflow to a callback.
        /// </summary>
        /// <typeparam name="TResult">Result type.</typeparam>
        /// <param name="workflow">Initial workflow to be executed.</param>
        /// <param name="continuation">Callback workflow to be executed on completion of the former.</param>
        /// <returns>A combined workflow.</returns>
        public static Cloud <TResult> Then <TResult>(this CloudAction workflow, Func <TResult> continuation)
        {
            Func <Cloud <TResult> > f = () => continuation().AsCloud();

            return(Builder.Bind <Unit, TResult>(workflow.Body, f.AsFSharpFunc()));
        }