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