我在Visual Studio 2010中运行了一个软件的并发配置文件,并发现了一些不在锁定内的代码行的争用。比如说,创建一个数组的新操作,或一个线程本地的DynamicMethod.Invoke调用。一些争论只是简单的任务。我无法弄清楚为什么这些行导致意图,因为我的代码中不应该有任何锁定。
有人遇到过类似的问题吗?我认为VS2010并发分析器中显示的争用应该都是由等待锁或进入一个互斥部分引起的。感谢。
答案 0 :(得分:0)
新建数组并使用动态方法进行操作都会分配内存,那么它是否可能只是在分配器中进行争用?当然,这并不能解释分配线......