草庐IT

MONO_GC_PARAMS

全部标签

c# - 委托(delegate)会导致内存泄漏吗? GC.TotalMemory(true) 似乎表明如此

代码usingSystem;internalstaticclassTest{privatestaticvoidMain(){try{Console.WriteLine("{0,10}:Startpoint",GC.GetTotalMemory(true));ActionsimpleDelegate=SimpleDelegate;Console.WriteLine("{0,10}:Simpledelegatecreated",GC.GetTotalMemory(true));ActionsimpleCombinedDelegate=simpleDelegate+simpleDelegat

c# - 我可以告诉 .NET GC 不理会某些线程吗?

我正在研究将相对较小的服务从C++重写为C#的可能性。该服务有两个主要功能:偶尔执行HTTP请求。它们涉及几个高级任务,例如JSON编码/解码、base64编码/解码和HTTP请求本身,C++对此并不出色;执行许多具有严格截止日期的实时音频相关任务,而C#对此并不出色。实时任务由一个单独的库处理,该库执行自己的线程操作,几乎不与服务的其余部分交互。该服务的其余部分每5分钟左右向它提供一些从HTTP请求中获取的数据。问题是,由于实时部分有严格的期限,我真的不能容忍库线程上的GC暂停。在我自己的代码方面,GC应该有足够的时间在Web请求之间运行,但我不能容忍它在我尝试向库提供数据时启动。我

c# - vscode : how to setup debugging mono/c#?

我正在尝试设置VisualStudioCode(https://code.visualstudio.com/docs/debugging)以在win8上调试c#/mono。我还安装了最新版本的单声道。我向launch.json添加了一个配置并将“类型”更改为单声道(也尝试将“程序”指向调试exe)但我只是收到错误:初始化:无法为适配器ID“mono”创建调试session如何在C#项目上设置调试?编辑:似乎需要gulp脚本?CompilingC#projectswithVSCodeonUbuntu 最佳答案 VisualStudio

c# - Mono 上的 SignalR 和 Websockets

我已经进行了数小时的搜索,试图弄清楚为什么websockets传输无法通过信号器在我的c#4.5应用程序上通过mono4.0.1在linux上运行。我项目中的引用:Microsoft.Owin.Host.HttpListenerMicrosoft.Owin.Host.SystemWeb现在,我正试图找出阻止websockets工作的瓶颈所在。我的理解是,SystemWeb基本上是一个自运行服务器,它利用Httplistener监听HTTP连接的端口,然后处理它们直到系统网。我的这一部分是否正确?有人可以为我指明正确的方向以解决当前正在开发的未解决问题或错误跟踪器吗?据我所知,http.

c# - 以编程方式确定 Mono 运行时版本

以编程方式确定Mono运行时版本的推荐方法是什么?当我们的.Net应用程序与旧版本的Mono一起使用时,我们遇到了各种问题。有时我们可以解决这些问题,如果我们知道我们正在处理哪个版本,但有时我们不能。我们的解决方案是以编程方式检测Mono版本,然后我们可以透明地应用解决方法。如果Mono版本太旧,我们会提示用户升级。我们可以通过如下方式发现Mono是我们的运行时:boolisMonoRuntime=Type.GetType("Mono.Runtime")!=null;我们如何在不间接推断的情况下可靠地确定单声道版本?需要明确的是,我们需要Mono版本号,而不是.NetCLR版本号。

c# - 在方法覆盖中更改 params 修饰符

我知道params修饰符(将数组类型的一个参数转换为所谓的“参数数组”)不是方法签名的一部分。现在考虑这个例子:classGiraffid{publicvirtualvoidEat(int[]leaves){Console.WriteLine("G");}}classOkapi:Giraffid{publicoverridevoidEat(paramsint[]leaves){Console.WriteLine("O");}}编译时没有警告。然后说:varokapi=newOkapi();okapi.Eat(2,4,6);//willnotcompile!给出错误(方法“Eat”没有重

c# - 使用 GC.AddMemoryPressure() 防止 OutOfMemoryException?

我目前正在调试我们用来在系统中显示图像之前用特定文本标记图像的方法。标签方法目前看起来像这样:privatestaticImageTagAsProductImage(Imageimage){try{//Preparesthegarbagecollectorforaddedmemorypressure(500000bytesisroughly485kilobytes).//ShouldsolvesomeOutOfMemoryExceptions.GC.AddMemoryPressure(500000);using(Graphicsgraphics=Graphics.FromImage(i

C# 使用 params 关键字的结果不一致

给定以下方法:staticvoidChangeArray(paramsstring[]array){for(inti=0;i如果我调用它来传递一个字符串数组,这将起作用:string[]array={"Michael","Jordan"}//willbecome{"Michaels","Jordans"}ChangeArray(array);但如果我使用字符串参数调用它,将无法工作:stringMichael="Michael";stringJordan="Jordan";ChangeArray(Michael,Jordan);//ThiswillNOTchangethevalueso

c# - 移植时出现 Mono resources.resx 问题( '</data>' 上的 resx xml 文件出现奇怪错误)

所以我有一个C#应用程序。它有一些链接到它的Assets,并在编译时被嵌入。应用程序在Windows上完美编译和运行。当测试与单声道的兼容性时,一切都是正确的。如果我尝试编译给出一个错误nxml文件/home/rupert/Desktop/CloudObserverLite(4)/CloudObserverLite/Properties/Resources.resx:Error:Error:InvalidResXinput.Position:Line123,Column5.Innerexception:value(CloudObserverLite)如果我们将查看resxxml...S

c# - 在一段代码中暂停 GC

有没有办法让一段代码的GC完全搁置?我在其他类似问题中发现的唯一一件事是GC.TryStartNoGCRegion,但它受限于您指定的内存量,它本身受限于临时段的大小。有没有办法完全绕过它并告诉.NET“分配你需要的任何东西,不要执行GC周期”或增加段的大小?据我发现,它在多核服务器上最多为1GB,这比我需要分配的要少,但我不希望GC发生(我有多达TB的可用RAM,并且有数千个GC尖峰在那个部分,我非常乐意用RAM使用量的10倍甚至100倍来交换它们。编辑:既然有赏金,我认为如果我指定用例会更容易。我正在使用LINQtoXML将一个非常大的XML文件(目前为1GB,很快将达到12GB)