C# 为什么在没有锁的地方会有争吵?

C# 为什么在没有锁的地方会有争吵?,c#,visual-studio-2010,parallel-processing,contention,C#,Visual Studio 2010,Parallel Processing,Contention,我在VisualStudio2010中运行了一个软件的并发配置文件,在不在锁中的代码行上发现了一些冲突。比如,创建数组的新操作,或者线程本地DynamicMethod.Invoke调用。有些争论仅仅是关于作业的。我无法理解为什么这些行会导致意图,因为在我的代码中不应该有任何锁定 有人经历过类似的问题吗?我认为VS2010并发分析器中显示的冲突都应该是由等待锁或输入互斥部分引起的。谢谢。更新数组和jitting动态方法都会分配内存,所以可能只是分配器中的争用?当然,这并不能解释赋值行…在分析之后,

我在VisualStudio2010中运行了一个软件的并发配置文件,在不在锁中的代码行上发现了一些冲突。比如,创建数组的新操作,或者线程本地DynamicMethod.Invoke调用。有些争论仅仅是关于作业的。我无法理解为什么这些行会导致意图,因为在我的代码中不应该有任何锁定


有人经历过类似的问题吗?我认为VS2010并发分析器中显示的冲突都应该是由等待锁或输入互斥部分引起的。谢谢。

更新数组和jitting动态方法都会分配内存,所以可能只是分配器中的争用?当然,这并不能解释赋值行…

在分析之后,我发现一些争用调用堆栈在一个名为zzz_AsmCodeRange_Begin的函数处结束。这必须是CLR函数。有人知道这个函数意味着什么,为什么争用调用堆栈在这里结束吗?