WEB开发网
开发学院软件开发C语言 WF4.0 Beta1之旅(4):Bookmark的使用 阅读

WF4.0 Beta1之旅(4):Bookmark的使用

 2010-10-01 08:31:47 来源:WEB开发网   
核心提示: Parallel中有两个Read活动,两个read活动的BookmarkName属性为x,WF4.0 Beta1之旅(4):Bookmark的使用(2),y,Result属性也为x,y3.宿主程序如下:namespaceBookmarks{usingSystem;usingSystem.Linq

Parallel中有两个Read活动,两个read活动的BookmarkName属性为x,y。Result属性也为x,y

WF4.0 Beta1之旅(4):Bookmark的使用

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之旅(4):Bookmark的使用 

系列文章:

WF4.0 Beta1之旅(1):基本介绍

WF4.0 Beta1之旅(2):异常处理

WF4.0 Beta1之旅(3):全新的FlowChart

上一页  1 2 

Tags:WF 之旅

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