WF4.0 Beta1之旅(7):WF调用PowerShell
2010-09-30 21:05:45 来源:WEB开发网图片看不清楚?请点击这里查看原图(大图)。
4.停止进程的活动StopProcess,使用的是InvokePowerShell活动,如下图:
图片看不清楚?请点击这里查看原图(大图)。
5.我们设计的工作流如下图:
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.运行结果如下:
- ››WF 4.0 beta1中的跟踪机制
- ››WF 4.0的建模风格:顺序和Flowchart
- ››WF4.0 Beta1之旅(5):规则引擎的变化
- ››WF 4.0 beta1活动概览(1):Procedural
- ››WF4.0 Beta1之旅(4):Bookmark的使用
- ››WF4.0 Beta1之旅:基本介绍
- ››WF4.0 Beta1之旅(2):异常处理
- ››WF4.0 Beta1之旅(3):全新的FlowChart
- ››WF 应用场景指南: SharePoint 与工作流(上)
- ››WF 应用场景指南: 展现流(Presentation Flow)
- ››WF单元测试系列1:测试基本的Activity
- ››WF单元测试系列2:简单测试Activity的行为
更多精彩
赞助商链接