草庐IT

MONO_GC_PARAMS

全部标签

c# - C# 中的命名参数和 params 关键字

这个问题在这里已经有了答案:Howtosetnamedargumentforstring.Format?(2个答案)关闭9年前。我有一个C#方法,它带有使用params关键字声明的可变长度参数列表:publicvoidVariableLengthParameterFunction(objectfirstParam,paramsobject[]secondParam)调用方法时有没有使用命名参数的方法?

c# - 应该在没有终结器的对象上调用 GC.SuppressFinalize 吗?

出于某种原因FXCopseemstothink我应该在Dispose中调用GC.SuppressFinalize,无论我是否有终结器。我错过了什么吗?是否有理由在没有定义终结器的对象上调用GC.SuppressFinalize? 最佳答案 没有必要在Dispose中调用GC.SuppressFinalize(this),除非:您是实现用于重写的虚拟Dispose方法的基类(同样,即使在这里,这也可能不是您的责任,但在那种情况下您可能想要这样做)你自己有一个终结器。从技术上讲,.NET中的每个类都有一个终结器,但如果唯一存在的终结器是

c# - 在 Mono 和 .NET 之间拆分的编译器 #if 指令

这个问题在这里已经有了答案:HowcanIconditionallycompilemyC#forMonovs.Microsoft.NET?(2个答案)关闭9年前。我需要为Mac上的Mono和PC上的.NET双重编译一个类库。我想做一些小改动,但我希望使用编译器指令拆分代码。有什么建议吗?

c# - 无法使用 Mono 创建/修改 gif

我正在尝试将单元测试添加到.NetImageProcessor库:https://github.com/cosmo0/ImageProcessor/tree/tests我正在我的Mac上开发Xamarin/Mono。Mono似乎在处理gif动画图像方面存在一些问题。对于我的单元测试,我有一堆测试图像,我加载它们并在每个图像上运行转换。每次我应用滤镜(例如亮度)时,它都会在尝试重新创建图像时失败。失败行在这里:https://github.com/cosmo0/ImageProcessor/blob/tests/src/ImageProcessor/Imaging/Formats/Gif

c# - 您能否使用 Mono/LLVM 生成比使用 Microsoft 的 C# 编译器更快的 .NET 应用程序?

MonowithLLVM项目能够使用LLVM编译器后端,它有一些非常强大的优化来编译C#.NET项目,这使得它在计算密集型应用程序中的运行速度提高了大约20%。MonoisnowabletouseLLVMasabackendforcodegenerationinadditiontoMono'sbuilt-inJITcompiler.ThisallowsMonotobenefitfromallofthecompileroptimizationsdoneinLLVM.ForexampletheSciMarkscoregoesfrom482to610.那么是否可以将现有的C#.NET项目定位

c# - Mono 上奇怪的 WeakReference 行为

使用Mono2.11.3(SGen)以及稳定的2.10.8版本时,使用Wea​​kReference的测试代码对我来说失败了。在像这样的简单代码中objectobj=newobject();WeakReferencewr=newWeakReference(obj);Assert.IsTrue(wr.IsAlive);obj=null;GC.Collect();Assert.IsFalse(wr.IsAlive);第二个断言将失败。添加GC.WaitForPendingFinalizers没有帮助。这是Mono中的错误还是我脑子里的错误?谢谢 最佳答案

c# - 如何使用 Mono 和 mkbundle 将一个简单的 .Net 控制台项目转换为可移植的 exe?

我想将我简单的纯.Net2.0控制台实用程序转换成一个可移植的exe,我可以将它放在USB内存棒上运行,而不必担心CLR和框架库是否安装在特定机器上.Stackoverflow已有someinformation关于使用Mono和Mkbundle用于从.Net项目创建独立的Windowsexe,但我想要的是一个紧凑但有用的HOWTO。从简单的C#VisualStudio项目实现可移植性的最少步骤是什么? 最佳答案 我找到了一个简单的方法here但是,由于我没有亲自测试过,我不能保证结果。像往常一样YMMV。引自原文(请继续关注原文中的

c# - 使用 mono.cecil 添加自定义属性?

我不知道如何使用Mono.Cecil将自定义属性添加到方法中我想添加的属性是这样的:.custominstancevoid[mscorlib]System.Diagnostics.DebuggerHiddenAttribute::.ctor()=(01000000)有谁知道如何添加自定义属性 最佳答案 其实很简单。ModuleDefinitionmodule=...;MethodDefinitiontargetMethod=...;MethodReferenceattributeConstructor=module.Import(t

c# - GC.KeepAlive 与使用

在他的articleaboutpreventingmultipleinstancesMichaelCovington展示了一个应用程序的代码:staticvoidMain()//argsareOKhere,ofcourse{boolok;m=newSystem.Threading.Mutex(true,"YourNameHere",outok);if(!ok){MessageBox.Show("Anotherinstanceisalreadyrunning.");return;}Application.Run(newForm1());//orwhateverwasthereGC.Kee

c# - 发生压缩后GC如何更新引用

.NET垃圾收集器收集对象(回收它们的内存)并执行内存压缩(以将内存碎片保持在最低限度)。我想知道,由于一个应用程序可能有很多对对象的引用,当对象的地址由于GC进行的压缩而发生变化时,GC(或CLR)如何管理这些对对象的引用。 最佳答案 这个概念很简单,垃圾收集器简单地更新任何对象引用并将它们重新指向移动的对象。实现有点棘手,native代码和托管代码之间没有真正的区别,它们都是机器代码。对象引用并没有什么特别之处,它只是运行时的一个指针。收集器需要一种可靠的方法来找回这些指针并将它们识别为引用托管对象的类型。不仅要在压缩过程中移动