我有一个在VS2008和Vista上正常工作的程序,但是我在Windows 7和VS2010 / .NET Framework 4.0上试用它,它不工作。 最终问题是System.Diagnostics.PerformanceCounterCategory.GetCategories() (和其他PerformanceCounterCategory方法)不起作用。 我得到一个System.InvalidOperationException消息“无法加载计数器名称数据,因为从registry中读取了一个无效的索引”。 我可以用下面显示的非常简单的程序重现这个: class Program { static void Main(string[] args) { foreach (var pc in System.Diagnostics.PerformanceCounterCategory.GetCategories()) { Console.WriteLine(pc.CategoryName); } } } 我确实以pipe理员身份运行程序。 不pipe我是否用VS / Debugger运行它都没关系。 我没有另一台Windows 7或VS2010的机器来testing它,所以我不知道这是(或两者?)的东西是复杂的。 这是Windows 7 x64,我试图迫使应用程序运行在x32和x64,但得到相同的结果。
我对这个testing函数有一个问题,我在内存string中进行压缩,然后解压缩。 压缩效果很好,但我似乎无法得到解压缩工作。 //Compress System.IO.MemoryStream outStream = new System.IO.MemoryStream(); GZipStream tinyStream = new GZipStream(outStream, CompressionMode.Compress); mStream.Position = 0; mStream.CopyTo(tinyStream); //Decompress outStream.Position = 0; GZipStream bigStream = new GZipStream(outStream, CompressionMode.Decompress); System.IO.MemoryStream bigStreamOut = new System.IO.MemoryStream(); bigStream.CopyTo(bigStreamOut); //Results: //bigStreamOut.Length == 0 //outStream.Position == the end of the stream. 我相信bigStream out应该至less有数据,特别是如果我的源stream(outStream)正在被读取。 这是一个MSFT错误或我的?
我有兴趣安装.NET 4.5。 但是我听说这是一个就地升级。 由于我公司的用户使用Windows XP。 我无法发布任何使用.NET 4.5的客户端应用程序。 我知道我可以定位.net 4.0,当我编码,但是,如果我安装.net 4.5,在我的机器上运行的东西的风险将无法在Windows XP机器上(只有.net 4.0)? (顺便说一下,我看了,但没有看到这个问题,如果有问题,请指出我,我会试着删除这个问题。)
一些奇怪的行为与C#4.0共同支持和反对支持: using System; class Program { static void Foo(object x) { } static void Main() { Action<string> action = _ => { }; // C# 3.5 supports static co- and contravariant method groups // conversions to delegates types, so this is perfectly legal: action += Foo; // since C# 4.0 much better supports co- and […]
为了充分理解和利用新的.NET Framework 4.0的新function和增强function,我希望得到一个真实应用代码合同的例子。 任何人都有这个function的应用很好的例子? 我想得到一个简单的解释代码示例,以帮助我起床并运行它。
我知道这里还有很多问题,以及雷蒙德(和往常一样)出色的职位 。 但是,由于创buildGUID的algorithm显然发生了变化,所以我很难掌握任何最新的信息。 MSDN似乎尝试尽可能less地提供信息。 .NET 4中如何生成GUID是什么? 什么改变了,它是如何影响安全性(“随机性”)和完整性(“唯一性”)? 我感兴趣的一个具体方面是:在v1中,似乎几乎不可能在单个机器上再次生成相同的GUID,因为存在时间戳和计数器。 在v4中,这不再是这种情况(我被告知),所以有机会在单个机器上获得相同的GUID … 增加了 ?
什么可能导致以下exception? System.MissingMethodException Int32 System.Environment.get_CurrentManagedThreadId() 这种方法调用似乎是由C#编译器为产生IEnumerable<>方法生成的。 安装.NET Framework v4.0 x86,并为v4.0 Any CPU编译二进制文件。
我已经将我的ASP.NET MVC 2项目迁移到VS 2010 + .NET 4.0。 现在,当我启动应用程序,我在IntelliTrace和Output / Gebug窗口中得到了很多“CultureNotFoundException”: 在mscorlib.dll中发生types为“System.Globalization.CultureNotFoundException”的第一次机会exception 我知道什么“第一次机会exception”的意思,但是当我尝试debugging(添加“CultureNotFoundException”到Bebug / Exceptions [投掷])为什么前。 被抛出我得到这个详细的例外文本: 发生System.Globalization.CultureNotFoundException消息=不支持文化。 参数名称:名称devise者是一个无效的文化标识符。 来源= mscorlib ParamName =名称InvalidCultureName =devise器StackTrace:在System.Globalization.CultureInfo..ctor(string名称,布尔useUserOverride)InnerException: 我想知道为什么.NET正在试图创build名为“devise师”的CultureInfo? 是不是bug?
我只是在寻找新的.NET 4.0function。 与此同时,我正在尝试使用Parallel.For和for(x;x;x)循环的正常计算。 但是,我在50%的时间里得到了不同的结果。 long sum = 0; Parallel.For(1, 10000, y => { sum += y; } ); Console.WriteLine(sum.ToString()); sum = 0; for (int y = 1; y < 10000; y++) { sum += y; } Console.WriteLine(sum.ToString()); 我的猜测是线程正试图同时更新“sum”。 有没有一个明显的方法呢?
所以,我正在寻找[PATH]\RefSrc\Source\.Net\4.0\DEVDIV_TFS\Dev10\Releases\RTMRel\ndp\fx\src\MIT\System\Web\UI\MobileControls\Panel.cs\1305376\Panel.cs并注意到该文件以及我检查的其他文件包含两个完全相同的重复项(我通过粘贴两个块进行diff工具检查)的源代码。 像这样: [COPYRIGHT MESSAGE 1] [CODE] [COPYRIGHT MESSAGE 2] [COPYRIGHT MESSAGE 1] [CODE] [COPYRIGHT MESSAGE 2] 是否有一个原因? 有些版本控制或什么奇怪? 我试图检查参考源论坛,并看到有人推测 ,这是一个安装程序中的错误,但我很好奇,如果任何人都可以提供自己的见解。