02 2008 档案
摘要:父类一个virtual方法,一个普通方法;子类复写virtual,同时具有同名普通方法(使用new)。则Parent p = new Son();产生有趣结果: class Program { static void Main(string[] args) { Parent p = new Son(); ...
阅读全文
摘要:1.一个整型数组,知道长度,里面存放有:负数/正数/零,请求"子串之和最大"的子串,函数返回该子串之和.函数形式: int f(int* array, int length); 举例: array = {7,6,3,-10,2,-8,6} 和最大的子串为: 7 + 6 + ...
阅读全文
摘要:调度Scheduling 调度器: 建立一个队列,让其中的工作项(即活动中的委托方法,称之为调度器工作项)分配到目标活动 使用Invoke方法, 将ContinueAt()的工作项送进调度器队列,同时分配工作项,同时执行相应的委托方法 调度器工作队列 != WF程序队列, 前者由runtime管理, 工作项是ContinueAt()这样的delegate...
阅读全文
摘要:WF运行时 实例化一个System.Workflow.Runtime.WorkflowRuntime对象,这样的程序称为宿主程序(host) WorkflowRuntime就是上一章的MythicalRuntime, WorkflowInstance就是上一章的ProgramHandle 要使用TypeProvier类将包含活动的dll加载到runtime:如下: ...
阅读全文
摘要:1.Activity,即可恢复语句组件,一组Activity组成了WF工作流 所有的活动都派生自System.Workflow.ComponentModel.Activity类,都要重载Execute()方法来定义活动的执行逻辑。 Activity派生自DependObject(后者提供依赖属性DependProperty,见第7章) Activity的Enabled属性,...
阅读全文
摘要:复合语句组件 接下来要做的是把OpenSesame分成若干小单元 第一次分割,将Read从OpenSesame中分离出来 OpenSesame中,调用了Read 这里的关键是,如何在Read完成执行后,通知调用者OpenSesame。 处理方法:在Read的Start/Run方法中使用一个书签,从而暂停了程序;Read执行完毕,最后一步恢复书签,通知了书签管理器BookmarkManager,激...
阅读全文
摘要:问题汇总: 1.Interrupt这个方法会抛出异常,所以要捕获,原书中没有. 2.Thread的Sleep方法已经是static的,直接使用Thread.Sleep()代替实例方法 3.TryEnter方法的使用,是否需要Monitor.Exit()搭配使用 P89 书中Sample报错 4.AutoResetEvent类 信号概念 5.Mutex P101, 书中Sample出错:少两行输出,...
阅读全文
摘要:如果没有微软的WF,如何设计一个自己的工作流,本章通过经典的芝麻开门(OpenSesame)示例,向读者展示了WF基本的设计思路. 这一章我读了很多遍才想明白.建议所有读者在阅读后续章节时,一定要先读懂本章,这是全书的基石;还有就是本章的示例代码并不完整,仅仅是一个类及其方法的骨架,也是容易使人困惑的. 设计交互式WF,要解决两个问题: 1.线程阻塞,比如说Console.ReadLin...
阅读全文