为什么Windows工作流运行时正在创建我工作流的两个实例?

时间:2012-01-02 10:40:45

标签: workflow-foundation workflow-activity

在调试生产代码时 - 我发现我的工作流构造函数被多次触发。我不想因为哲学而责备世界自然基金会 - “在责备他人之前检查你的代码”。我创建了一个示例应用程序来测试该方面,并发现正在创建两个worklow实例。理想情况下,应该只创建一个实例。很想理解 - 为什么WWF运行时正在创建两个实例?

代码清单:

public partial class TestWorkflow : SequentialWorkflowActivity
{
    public TestWorkflow()
    {
        InitializeComponent();
        countOfInstances++;
    }

    protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
    {
        Console.WriteLine("Instances Created = {0}", countOfInstances);
        return base.Execute(executionContext);
    }

    private static int countOfInstances = 0;
}

感谢。

1 个答案:

答案 0 :(得分:1)

在很多情况下,WF3克隆了活动来做工作。这可能就是为什么会发生这种情况。 WF4并不是WF4中许多改进和性能优化之一。