编程语言
首页 > 编程语言> > c#-动态CRM共享变量线程安全

c#-动态CRM共享变量线程安全

作者:互联网

我有一个动态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平台处理的任何单个操作. (例如,有关特定记录的创建或更新消息.)

标签:multithreading,dynamics-crm,plugins,c
来源: https://codeday.me/bug/20191119/2034558.html