WF4.0 Beta1之旅(4):Bookmark的使用
2010-10-01 08:31:47 来源:WEB开发网Parallel中有两个Read活动,两个read活动的BookmarkName属性为x,y。Result属性也为x,y
3.宿主程序如下:
namespace Bookmarks
{
using System;
using System.Linq;
using System.Threading;
using System.Activities;
using System.Activities.Statements;
using System.Collections;
class Program
{
static void Main(string[] args)
{
ManualResetEvent completionEvent = new ManualResetEvent(false);
AutoResetEvent idleEvent = new AutoResetEvent(false);
WorkflowInstance instance = new WorkflowInstance(new Sequence1());
instance.OnIdle += delegate
{
idleEvent.Set();
return IdleAction.Nothing;
};
instance.OnCompleted += delegate
{
completionEvent.Set();
};
instance.Run();
bool lastBookmark = false;
while (!lastBookmark)
{
idleEvent.WaitOne();
IList bookmarks = instance.GetAllBookmarks();
if (bookmarks == null || bookmarks.Count == 0)
{
break;
}
lastBookmark = (bookmarks.Count == 1);
while (true)
{
Console.Write("Bookmarks:");
foreach (BookmarkInfo info in bookmarks)
{
Console.Write(" '" + info.BookmarkName + "'");
}
Console.WriteLine();
Console.WriteLine("输入要恢复的书签名");
string name = Console.ReadLine();
Console.WriteLine("输入传入的数据 '{0}'", name);
string str = Console.ReadLine();
try
{
instance.ResumeBookmark(name, str);
break;
}
catch (BookmarkNotFoundException e)
{
Console.WriteLine(e.Message);
}
}
}
completionEvent.WaitOne();
Console.WriteLine("Press enter to exit");
Console.ReadLine();
}
}
}
通过 IList bookmarks = instance.GetAllBookmarks();获得所有书签。
通过instance.ResumeBookmark(name, str);恢复活动的执行。
4.结果如下:
系列文章:
WF4.0 Beta1之旅(1):基本介绍
WF4.0 Beta1之旅(2):异常处理
WF4.0 Beta1之旅(3):全新的FlowChart
- ››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的行为
更多精彩
赞助商链接