using System;
using System.Linq;
using System.Activities;
using System.Activities.Statements;
using System.Collections.Generic;

namespace WorkflowConsoleApplication2
{

    
class Program
    {
        
public static WorkflowApplication Instance = null;
        
static void Main(string[] args)
        {
         
//   WorkflowInvoker.Invoke(new Workflow1());
            Instance = new WorkflowApplication(new Workflow1());
            Instance.Run();
            System.Console.Read(); 
        }
    }

    
public class MyActivity : NativeActivity
    {
        
public static string bookmark = "AAAAAAAA";
        
public static Guid InstanceId = Guid.Empty;



        
public List<string> Tests { getset; }
        
protected override bool CanInduceIdle
        {
            
get
            { 
return true; }
        }
        
protected override void Execute(NativeActivityContext context)
        {
            Tests 
= new List<string>() { "A""B""C""D""E""F" };
            WorkflowApplication app 
= new WorkflowApplication(Create(Tests));
            app.Run();
            InstanceId 
= app.Id;

            context.CreateBookmark(bookmark, bookmarkCallback);
            Console.WriteLine(
"No");

        }
        
protected void bookmarkCallback(NativeActivityContext context, Bookmark bookmark, object obj)
        {
            Console.WriteLine(
"OK");
        }

        
public Activity Create(List<string> l)
        {
            var par 
= new Parallel()
            {

            };

            
foreach (var item in l)
            {
                par.Branches.Add(
new WriteLine() { Text = item });
            }
            var seq 
= new Sequence();
            seq.Activities.Add(par);
            seq.Activities.Add(
new BackActivity());
            
return seq;
        }

    }

    
public class BackActivity : NativeActivity
    {
        
protected override void Execute(NativeActivityContext context)
        {
            
// MyActivity.mainInstance.ResumeBookmark(MyActivity.bookmark, null);
            Program.Instance.ResumeBookmark(MyActivity.bookmark, null);
        }
    }
}
posted on 2011-03-21 18:08  rolends1986  阅读(312)  评论(0编辑  收藏  举报