草庐IT

Bad_alloc

全部标签

c# - GCHandle.Alloc 是否分配内存?

我正在使用SciTech的.NETMemoryProfiler来降低程序的内存分配率和垃圾回收频率。令人惊讶的是,根据探查器,最大数量的分配似乎来自GCHandle.Alloc调用,我正在执行这些调用以将现有的.NET数组编码到nativeOpenGL。我的理解是调用GCHandle.Alloc不会分配内存,它只会将现有内存固定在托管堆上?是我错了还是分析器错了? 最佳答案 .NETreferencesource任何人都可以看到,您可以自己看看并找出答案。如果深入研究GCHandle.Alloc,您会看到它调用了一个名为Intern

c# - 使用 WebClient 和 C#,即使响应为 (400) Bad Request,我如何获取返回的数据?

我正在使用GoogleTranslateAPI并trycatch当我收到error时返回的数据.(仅供引用:我知道APIkey是错误的,我只是在测试它)。问题是浏览器,您可以通过单击链接看到,显示错误信息,但C#抛出WebException,我似乎无法获得响应数据。这是我的代码:stringurl="https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&source=en&target=de&q=Hello%20world";WebClientclnt=newWebClient();//Getstrin

c# - `fixed` 与 GCHandle.Alloc(obj,GCHandleType.Pinned)

我试图找出用fixed关键字定义的固定指针是如何工作的。我的想法是在内部GCHandle.Alloc(object,GCHandleType.Pinned)用于此目的。但是当我查看为以下C#代码生成的IL时:unsafestaticvoidf1(){vararr=newMyObject[10];fixed(MyObject*aptr=&arr[0]){Console.WriteLine(*aptr);}}我找不到任何GCHandle的踪迹。我看到该方法中使用固定指针的唯一提示是以下IL声明:.localsinit([0]valuetypeTestPointerPinning.MyObj

c# - 无法上传到 Azure Blob 存储 : The remote server returned an error: (400) Bad Request

我正在尝试创建一个实用程序来从Internet下载文件并将其再次上传到Azureblob存储。Blob容器已经创建好了;但出于某种原因,当我尝试将文件上传到存储时出现“BadRequest400”异常......创建了容器名称,小写字母,特殊字符。但我仍然不知道为什么会出现异常!请帮忙。注意:我没有使用任何模拟器...直接在云端进行测试。我的所有容器都具有“公共(public)容器”访问选项。异常(exception)情况:Anexceptionoftype'Microsoft.WindowsAzure.Storage.StorageException'occurredinMicros

C# 互操作 : bad interaction between fixed and MarshalAs

我需要将C#4.0中的一些嵌套结构编码为二进制blob以传递给C++框架。到目前为止,我使用unsafe取得了很大的成功。/fixed处理基本类型的固定长度数组。现在我需要处理一个包含其他结构的嵌套固定长度数组的结构。我使用了复杂的变通方法来展平结构,但后来我遇到了一个MarshalAs的例子。看起来像它可以为我节省很多问题的属性。不幸的是,虽然它给了我正确的数据量,但它似乎也停止了fixed正如该程序的输出所示,数组不会被正确编码。您可以通过在最后一行放置断点并检查每个指针处的内存来确认失败。usingSystem;usingSystem.Threading;usingSystem.

c# - "Bad key"带有可导出私钥的证书异常

我正在尝试使用非对称加密对文件进行加密和解密。我已经使用makecert创建了一个测试证书并将其安装到我的个人本地机器商店中。将来我必须在多台服务器上安装此证书,这就是我使用“-pe”标志创建它的原因,即使用可导出的私钥。证书已成功创建和安装,我在mmc中看到“您有一个与此证书相对应的私钥”提示。现在我正尝试在.NET3.5中使用RSACryptoServiceProvider加密数据。它成功了。但是当我试图解密它时,出现“Badkey”异常。如果我创建的证书没有“-pe”选项,则相同的代码可以很好地解密。这是代码:RSArsaKey=(RSA)myCertificate.Privat

c# - 静态抛出类 : good or bad practice

抛出异常通常遵循以下模式:if(condition){throwexception;}你检查一个条件,如果条件满足,你抛出一个异常。所以,我想知道为它编写一个如下所示的静态类是否是个好主意:publicstaticclassThrow{publicstaticvoidIfNullOrEmpty(string@string,paramsobject[]parameters)whereT:Exception{Throw.If(string.IsNullOrEmpty(@string),parameters);}publicstaticvoidIfNullOrEmpty(IEnumerabl

C# 字符串.IsNullOrEmpty : good or bad?

在工作中我误用String.IsNullOrEmpty和Session变量后,我的一位同事现在拒绝接受我对String.IsNullOrEmpty的使用。经过一些研究,显然在MSDN(link)上为IsNullOrEmpty列出了一个错误(阅读底部的注释):AsofApril4,2006,thereisabug(possibleintheJIT)thatmakesthismethodfailwhenoptimizationsareturnedon.ItisknowntoaffectbothC#andVB.可以在此处找到更多信息(link)。微软这个错误“应该”在Orcas后修复,但不幸

c# - 了解使用固定{}、Marshal.AllocHGlobal() 和 GCHandle.Alloc() 之间的区别

首先我要说的是,我在整个论坛和网络上的许多链接中查看并找到了有关使用fixed{}、Marshal.AllocHGlobal()和GCHandle.Alloc()的描述。但是,我还没有找到关于何时使用Marshal类与GCHandle类(使用和不使用fixed{})的简明解释。我正在使用第三方.NET库,它在“Buffer”类中有一个名为Readline()的方法。手册显示了以下函数原型(prototype):boolReadLine(intx1,inty1,intx2,inty2,System.IntPtrbufData,outintnumRead);bufData的描述如下:...

c# - 委托(delegate)为属性 : Bad Idea?

考虑以下控件(为简洁起见被截断):publicpartialclassConfigurationManagerControl:UserControl{publicFuncCanEdit{get;set;}publicFuncCanDelete{get;set;}publicDictionarySettings{get{returnInnerSettings;}set{InnerSettings=value;BindData();}}privateDictionaryInnerSettings;privatevoidOnListIndexChanged(objectsender,Even