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 {
get
;
set
; }
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
);
}
}
}