动态CRM共享变量线程安全
本文关键字:安全 线程 共享变量 CRM 动态 | 更新日期: 2023-09-27 18:28:45
我有一个动态CRM插件,它有两个步骤。一个在预创建时运行,另一个在创建后运行。我使用过共享变量。我在预创建时设置共享变量中的值,在创建后检索值。
现在是线程安全了。如果两个用户在同一个组织中触发同一个插件,他们不会重写彼此的数据吗?
在共享变量中设置值:
context.SharedVariables.Add("statecode", stateCodeValue);
context.SharedVariables.Add("statuscode", statusCodeValue);
从共享变量中获取值:
int statecode = (int)context.SharedVariables["statecode"];
int statuscode = (int)context.SharedVariables["statuscode"];
是的,这是线程安全的。传递给插件类的IPluginExecutionContext
是为插件执行管道唯一创建的对象。共享变量从一个阶段传递到下一个阶段(PreValidation=>PreOperation=>PostOperation=>AsyncOperation)。
执行管道特定于CRM平台处理的任何单个操作。(例如,关于特定记录的创建或更新消息。)