WEB开发网
开发学院软件开发C语言 WF4.0 Beta1之旅(7):WF调用PowerShell 阅读

WF4.0 Beta1之旅(7):WF调用PowerShell

 2010-09-30 21:05:45 来源:WEB开发网   
核心提示: 图片看不清楚?请点击这里查看原图(大图),4.停止进程的活动StopProcess,WF4.0 Beta1之旅(7):WF调用PowerShell(3),使用的是InvokePowerShell活动,如下图: 图片看不清楚?请点击这里查看原图(大图)

图片看不清楚?请点击这里查看原图(大图)。

4.停止进程的活动StopProcess,使用的是InvokePowerShell活动,如下图:

WF4.0 Beta1之旅(7):WF调用PowerShell

图片看不清楚?请点击这里查看原图(大图)。

5.我们设计的工作流如下图:

WF4.0 Beta1之旅(7):WF调用PowerShell

6.宿主程序如下:

namespace CaryPowerShell
{
    using System;
    using System.Linq;
    using System.Threading;
    using System.Activities;
    using System.Activities.Statements;
    class Program
    {
        static void Main(string[] args)
        {
            bool running = true;
            AutoResetEvent syncEvent = new AutoResetEvent(false);
            WorkflowInstance myInstance = new WorkflowInstance(new Sequence1());
            myInstance.OnCompleted = delegate(WorkflowCompletedEventArgs e)
            {
                running = false;
                syncEvent.Set();
            };
            myInstance.OnIdle = delegate()
            {
                syncEvent.Set();
                return IdleAction.Nothing;
            };
            myInstance.OnUnhandledException = delegate(WorkflowUnhandledExceptionEventArgs e)
            {
                Console.WriteLine(e.UnhandledException.ToString());
                return UnhandledExceptionAction.Terminate;
            };
            myInstance.OnAborted = delegate(WorkflowAbortedEventArgs e)
            {
                Console.WriteLine(e.Reason);
                syncEvent.Set();
            };
            myInstance.Run();
            // main loop (manages bookmarks)
            while (running)
            {
                if (!syncEvent.WaitOne(10, false))
                {
                    if (running)
                    {
                     
                        if (myInstance.GetAllBookmarks().Count > 0)
                        {
                            string bookmarkName = myInstance.GetAllBookmarks()[0].BookmarkName;
                            myInstance.ResumeBookmark(bookmarkName, Console.ReadLine());
                            syncEvent.WaitOne();
                        }
                    }
                }
            }
            System.Console.WriteLine("工作流执行结束");
            System.Console.ReadKey();
        }
    }
}

7.运行结果如下:

WF4.0 Beta1之旅(7):WF调用PowerShell

上一页  1 2 3 

Tags:WF 之旅

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接