【问题标题】:Workflow Foundation 4: Activity Caching Thread Safety?工作流基础 4:活动缓存线程安全?
【发布时间】:2011-03-15 13:41:42
【问题描述】:

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

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

但是,我的应用程序是多线程的。多个线程使用同一个 Activity 实例是否安全?根据the MSDN documentation,它说它不是线程安全的,但它看起来像是几乎所有类的标准消息。

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-13
      相关资源
      最近更新 更多