Workflow Foundation 4:活动缓存线程安全性?

时间:2011-03-15 13:41:42

标签: .net-4.0 workflow-foundation-4

我的代码中有一些地方使用WorkflowInvoker.Invoke方法调用活动。我遇到了很多性能问题,因为每次我需要调用它时都会创建一个活动。

根据this MSDN Blog post,我应该缓存活动并运行相同的活动实例,而不是创建一个新实例。

但是,我的应用程序是多线程的。许多线程使用相同的Activity实例是否安全?根据{{​​3}},它表示它不是线程安全的,但它看起来像几乎所有类的标准消息。

我怀疑它应该是线程安全的,因为活动使用的数据存储在单独的上下文中(作为变量和参数)而不是活动类的普通实例成员。

1 个答案:

答案 0 :(得分:2)

我发现共享同一个Activity实例的线程没有问题。这是有道理的,因为数据通过上下文(而不是Activity对象的属性)传递给活动。活动缓存显着提高了性能。