相关文章:
WF4.0 Beta1之旅(1):基本介绍
WF4.0 Beta1之旅(2):异常处理
WF4.0 Beta1之旅(3):全新的FlowChart
WF4.0中加入了书签(Bookmark)机制,可以让活动在书签的位置挂起,等待恢复。如果我们需要在活动没有完成的时候,提供额外的数据,这个时候我
们就可以给活动注册一个书签,我们需要使用CreateNamedBookmark方法创建书签,该方法有三个参数一个名字,一个BookmarkCallback的委托,当
活动恢复的时候执行。和BookmarkOptions,Runtime为每个工作流实例维护一个Bookmarks的Table,每次有Bookmark要恢复的时候都回去check。
1.下面我们就创建一个这样的自定义活动,Read.cs,代码如下:
using System; using System.Activities; public sealed class Read<T> : NativeActivity<T> { public Read() : base() { } public string BookmarkName { get; set; } protected override void Execute(ActivityExecutionContext context) { context.CreateNamedBookmark(this.BookmarkName, new BookmarkCallback(this.Continue)); } void Continue(ActivityExecutionContext context, Bookmark bookmark, object obj) { this.Result.Set(context, (T)obj); } }
2.设计工作流
工作流中包含一个Parallel和一个WriteLine,工作流中的变量如下:
Name:x type:String scope:Sequence
Name:y type:String scope:Sequence
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.结果如下:
发表评论
-
平淡的2007
2007-12-24 08:04 817早上起来,送女朋友去公交车站,然后回来赶紧打开电脑,先 ... -
DreamSpark发布,高校学生免费使用Visual Studio 2008 Professional Edition 等微软软件
2008-02-20 13:23 1415今天上网无意中搜索到学生可以免费使用VS2008专业版,后来又 ... -
坚持学习WF(1):从HelloWorld开始
2008-04-04 16:30 892[置顶]坚持学习WF文章索 ... -
坚持学习WF(2):WF创作模式和设计时工具
2008-04-05 17:19 639[置顶]坚持学习WF文章索 ... -
坚持学习WF(3):WF框架概览
2008-04-08 07:27 783[置顶]坚持学习WF文章索 ... -
坚持学习WF(4):活动(Activity)和依赖属性(DependencyProperty)
2008-04-12 00:01 1148[置顶]坚持学习WF文章索引 活动(Activity) 活动 ... -
坚持学习WF(5):自定义活动(CustomActivity)
2008-04-13 15:25 929当WF提供的标准活动不能满足我们的需求的时候,我们就需要定义自 ... -
MOSS点滴(1):如何开发和部署feature
2008-04-16 21:35 835Features 是MOSS 2007以开箱即用的一套新功能, ... -
MOSS点滴(2):自定义Application Page
2008-04-19 20:07 844在MOSS中后台管理的页面都是Application Pag ... -
坚持学习WF(6):开发可复用的宿主程序
2008-04-21 21:45 695我们之前写工作流宿主 ... -
MOSS点滴(3):说说MOSS中的母版页
2008-04-25 21:15 1187MOSS中有两种页面:Site P ... -
MOSS点滴(4):实现Form认证
2008-04-29 21:12 705本文主要参考了网上的一些文章,但有些文章有些地方说的不是很明确 ... -
坚持学习WF(7):流程控制(Flow Control)
2008-04-30 18:10 839本文主要说说WF中和流 ... -
坚持学习WF(8):本地服务之调用外部方法
2008-05-09 08:17 761WF提供了一组核心服务 ... -
MOSS中的WebPart开发
2008-05-10 13:53 1060由于在asp.net1.1的时候asp.net中还没有webp ... -
坚持学习WF(9):本地服务之事件处理
2008-05-28 07:49 800[置顶]坚持学习WF文章索引 一:先来介绍两个活动 Even ... -
坚持学习WF(10):在工作流中使用关联
2008-06-01 13:03 692[置顶]坚持学习WF文章索 ... -
坚持学习WF(11):工作流通信与队列
2008-06-07 15:45 735[置顶]坚持学习WF文章索引 WF 提供的通信模型是构建于 ... -
MOSS中创建自定义内容类型
2008-06-12 20:23 1106一:简要介绍 某类内容 ... -
.NET中IDisposable接口的基本使用
2008-06-15 12:01 950首先来看MSDN中关于这个接口的说明: [ComVisible ...
相关推荐
本例子旨在演示如何使用WF4.0的多书签功能来模拟简单的会签过程,会签在业务流程中常见于多个参与者需要对同一份文档或请求进行审批的情况。 会签过程通常涉及多个步骤和角色,每个角色都需要查看、评估并批准或...
在这个例子中,我们将探讨如何利用WF4.0中的“书签”(Bookmark)功能来实现动态调用子流程的功能。 书签在WF4.0中扮演着重要的角色,它允许工作流在执行到特定点时暂停,并在稍后恢复。这就像阅读一本书时放置的...
### WF 4.0 之持久化操作 #### 概述 在工作流(WF)领域,特别是针对WF 4.0版本的理解中,“WF 4.0 之持久化操作”这一主题聚焦于如何有效地将工作流的状态保存下来,以便在后续的操作中能够继续执行。持久化操作...
Adobe Reader 书签插件:插件是一个JS文件,下载后将.js文件复制到软件安装目录JavaScript文件夹下,参考C:\Program Files (x86)\Adobe\Reader 11.0\Reader\Javascripts\bookmark_page.js
1. **云存储**:Bookmark4U的核心特性是其云存储功能。这意味着用户的书签不再局限于特定设备,而是可以通过互联网在任何地方访问。用户只需要登录他们的账户,就能访问自己的书签库,这大大提升了跨设备使用的便利...
:bookmark_tabs: :bookmark_tabs: :bookmark_tabs: :bookmark_tabs: :bookmark_tabs: :bookmark_tabs: :bookmark_tabs: :bookmark_tabs: :bookmark_tabs: :bookmark_tabs: :bookmark_tabs: :...
.NET 4.5 中的状态机工作流是工作流基础(WF)的一种实现方式,WF 4.0 中已经提供了状态机模式的支持。在 WF 设计界面中,可以看到状态机模板由三个 Activity 组成:StateMachin、State 和 FinalState。这三个 ...
KanbanG只是开发人员个人使用的另一个任务跟踪器。 现在它提供了什么? 好吧,它提供了: 根据需要创建任意数量的仪表板! 根据需要创建任意数量的跟踪列(例如,待办事项,进行中,完成等。) 为每列创建“ n”...
React DemoTab CLI :bookmark_tabs: 轻松创建 React 组件的演示 单独维护示例代码和演示会很痛苦,很容易使它们不同步:person_gesturing_NO: 代码不能撒谎,演示代码可以 :collision: DemoTab CLI 使您的代码与演示...
1. **多语言支持**:bookmark4u 的多语言界面是其一大亮点,为不同国家和地区的用户提供熟悉的使用环境,便于理解和操作。用户可以根据自己的语言偏好选择相应的界面,提升用户体验。 2. **书签管理**:用户可以...
:bookmark_tabs: 文章 :bookmark_tabs: 视频 :bookmark_tabs: 视频 :movie_camera: 视频 :bookmark_tabs: 文章 :bookmark_tabs: 文章 :bookmark_tabs: 文章 :bookmark_tabs: 文章 :bookmark_tabs: ...
标题中的“penguin::bookmark_tabs:”可能是一种符号化表达,暗示着这个项目是关于Linux(通常用企鹅作为它的吉祥物)的收藏夹或书签集合,用于组织和访问不同的Linux工具信息。 描述简单明了,表明这个项目是作者...
在本文中,我们将深入探讨如何使用Node.js中的`ftp`包进行FTP(文件传输协议)操作,特别是关于“ftp-node::bookmark_tabs”的示例代码。FTP是一种标准的网络协议,用于在服务器和客户端之间上传、下载文件。在Node....
切换到英文: 坎比亚人: 切换到中文: Uma coisa que eu semper fico emdúvidana ... :bookmark: :bookmark: :bookmark: :bookmark: :bookmark: :bookmark: :bookmark: :bookmark: :books: nd迪斯 :bookmark:
- **诞生背景**:多标签浏览功能始于Netscape Communicator 4.x的“多窗口”概念,后来在Firefox和Chrome等浏览器中得到广泛推广。 - **工作方式**:每个标签对应一个独立的浏览会话,用户可以同时打开多个网页而...
观念 该资料库包含有关...tabs::bookmark_tabs:单元测试-在Java中使用:bookmark_tabs:未定义类型的列表-从抽象到通用级别:bookmark_tabs:在Java异常 Python :bookmark_tabs:入门套件:bookmark_tabs:语言:bookmark_tabs:
【标题】"suboptimaleng.github.io::bookmark:Gridsome Blog 1.0" 指的是一款基于Gridsome框架构建的个人博客系统,版本为1.0。Gridsome是一款现代的静态网站生成器,它利用Vue.js的强大功能,提供快速、高效的网页...
React DemoTab :bookmark_tabs: 一个 React 组件,可以轻松创建其他组件的演示 安装 npm install react-demo-tab Demo DemoTab 示例 Example import React from 'react'; 从 'react-dom' 导入 ReactDOM; 从'react-...
ReactDemoTab CLI :bookmark_tabs: 轻松创建React组件的演示分别维护示例代码和演示很麻烦,很容易使它们不同步 :person_gesturing_NO: 代码不能撒谎,演示代码可以撒谎 :collision: DemoTab CLI通过演示使您的代码...
:bookmark: 古登标签 这是的插件。 它允许您从字体视图和编辑视图中编辑字形标记。 特征 从字体视图和编辑视图查看和编辑标签。 使用自动补全功能可防止在标签名称中输入错误。 通过单击标签右侧的小显示按钮来...