【问题标题】:Dynamic CRM Shared Variables Thread Safety动态 CRM 共享变量线程安全
【发布时间】:2015-12-31 13:42:01
【问题描述】:

我有一个包含两个步骤的动态 CRM 插件。一个是在创建前运行,第二个是在创建后运行。我使用了共享变量。我在预创建时设置共享变量中的值并在创建后检索值。

现在它是线程安全的。如果两个用户在同一个组织中触发同一个插件,他们不会覆盖彼此的数据吗?

在共享变量中设置值:

context.SharedVariables.Add("statecode", stateCodeValue);
context.SharedVariables.Add("statuscode", statusCodeValue);

从共享变量中获取值:

int statecode = (int)context.SharedVariables["statecode"];
int statuscode = (int)context.SharedVariables["statuscode"];

【问题讨论】:

    标签: c# multithreading plugins dynamics-crm


    【解决方案1】:

    是的,这是线程安全的。传递给插件类的IPluginExecutionContext 是一个为插件执行管道唯一创建的对象。共享变量从一个阶段传递到下一个阶段(PreValidation => PreOperation => PostOperation => AsyncOperation)。

    执行管道特定于 CRM 平台处理的任何单个操作。 (例如,关于特定记录的创建或更新消息。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-04
      • 1970-01-01
      • 1970-01-01
      • 2014-05-17
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多