我有一段代码使 Visual Studio 2008 IDE 运行速度非常慢,消耗大量内存,最终导致其崩溃。我怀疑 VS 达到了操作系统内存限制。
以下代码不是我的真实应用程序代码,但它模拟了问题。本质上,我试图使用 LINQ 找到树中的最小值。
class LinqTest
{
public class test
{
public int val;
public List<test> Tests;
}
private void CrashMe()
{
test t = new test();
//Uncomment this to cause the problem
//var x = t.Tests.Min(c => c.Tests.Min(d => d.Tests.Min(e => e.Tests.Min(f=>f.Tests.Min(g=>g.Tests.Min(h => h.val))))));
}
}
还有其他人见过类似的东西吗?
前段时间我提交了一份MS Connect 上的错误报告 http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=476133。今天早上我收到了回复:
感谢 Visual Studio 2008 的错误报告!
正如您在 Eric Lippert 博客的链接文章中指出的那样,我们在合理的时间内对此类嵌套 lambda 表达式进行类型推断的能力受到限制。也就是说,我们当然可以尝试对此类推理进行时间限制,或者对 lambda 嵌套设置硬性限制,以防止出现此类问题。不幸的是,我们开始锁定 Visual Studio 2010 中可以修复的内容,并且我们将无法在此版本中强制执行此类限制。
在规划未来的版本时,我们一定会牢记这个问题!
亚历克斯·特纳
项目经理
可视化 C# 编译器
and
您在 Microsoft Connect 上提交的以下反馈项目已更新:产品/技术 - Visual Studio 和 .NET Framework - 反馈 ID - 476133 反馈标题 - 嵌套 Linq Min() 使 Visual Studio 2008 IDE 崩溃 以下字段或值已更改: 字段状态从[有效]更改为[已解决]
字段分辨率从[无]更改为[无法修复]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)