草庐IT

MONO_GC_PARAMS

全部标签

c# - 分配相同大小的对象是否会提高 GC 或 "new"性能?

假设我们要创建许多字节数组类型的小对象。大小各不相同,但总是低于1024字节,比如780,256,953....如果我们始终只分配bytes[1024],并且只使用需要的空间,是否会随着时间的推移提高operatornew或GC效率?UPD:这是短暂的生命对象,为解析二进制协议(protocol)消息而创建。UPD:在这两种情况下,对象的数量是相同的,只是分配的大小发生了变化(随机vs.总是1024)。在C++中,由于碎片化和C++的新性能,这很重要。但是在C#中.... 最佳答案 Willitimproveoperatornewo

c# - P/Invoke 到 Mono 上动态加载的库

我正在编写一个使用一些非托管代码的跨平台.NET库。在我的类的静态构造函数中,检测到平台并从嵌入式资源中提取适当的非托管库并保存到临时目录,类似于anotherstackoverflowanswer中给出的代码。.为了在库不在PATH中时可以找到它,我在将它保存到临时文件后显式加载它。在Windows上,这适用于来自kernel32.dll的LoadLibrary。我正尝试在Linux上对dlopen执行相同的操作,但在稍后加载P/Invoke方法时出现了DllNotFoundException。我已验证库“libindexfile.so”已成功保存到临时目录,并且对dlopen的调用

c# - 如何使用 GC.KeepAlive() 以及用于什么目的?

我们如何使用GC.KeepAlive()目的是什么?我使用套接字将文件从终端(Windows-CE)传输到服务器。传输所需时间为8分钟。5分钟后Windows-CE关闭(如果未按下触摸屏)如果我为此使用GC.KeepAlive(),这是否解决了我的问题? 最佳答案 您很少需要使用GC.KeepAlive-非常很少。例如,如果您想防止终结器的副作用过早发生,您可以使用它。我最常看到它用于Mutex-保持互斥直到应用程序结束,以确保只有一个实例。(using语句实际上在这里更好,但这是另一回事。)不,这听起来与您的情况无关。

c# - 可选参数后跟 Params

这个问题在这里已经有了答案:C#4.0,optionalparametersandparamsdonotworktogether(3个答案)关闭9年前。所以我看到可以有一个方法签名,其中第一个参数提供默认值,第二个参数是参数集合。我看不到的是实际使用第一个参数的默认值的方法。有可能吗?示例方法:voidWaitAllTask​​s(stringmessage="RunningTask.WaitAll",paramsTask[]tasks);我最初尝试在调用方法时省略消息参数,还尝试使用命名参数,这不适用于params。可以编译,但可以使用吗?

c# - 有趣的 "params of ref"功能,有什么解决方法吗?

我想知道对于值类型是否有任何类似的方法......publicstaticclassExtensionMethods{publicstaticvoidSetTo(thisBooleansource,paramsBoolean[]bools){for(inti=0;i那么这将是可能的:Booleana=true,b,c=true,d=true,e;b.SetTo(a,c,d,e);当然,这是行不通的,因为bool是值类型,所以它们作为值而不是引用传递给函数。除了将值类型包装成引用类型(通过创建另一个类)之外,还有什么方法可以在使用params修饰符时通过引用(ref)将变量传递给函数?

c# - Xamarin.Mac 和 Mono :OSX 的区别在哪里

Xamarin.Mac和Mono:OSX的区别在哪里。我知道Xamarin购买了Mono,所以我认为它应该是一样的。但是Mono:OSX似乎是免费的,而Xamarin.Mac至少要399美元。那么它们两者的区别在哪里呢?Xamarin.Mac->http://xamarin.com/macMono:OSX->http://www.mono-project.com/Mono:OSX 最佳答案 以下摘自xamarin.com(http://docs.xamarin.com/mac/guides2013年1月1日)上的一篇文章,该文章回答

c# - 在 Mac 上部署没有框架的 Mono 应用程序

我有一个c#程序,它在Mono和OSX下运行良好,我还能够为该程序创建一个应用程序目录。现在我想分发它,但我不想强制用户安装单声道,因为这在Mac下不常见(并且有一些我想避免的副作用)。我已经尝试使用mkbundle构建一个包,但是mkbundle在Mac下无法正常工作。我应该补充一点,我使用GTK。在Mac下构建完全独立的应用程序的最简单方法是什么?有什么好的教程吗?有什么好的工具可以提供帮助吗? 最佳答案 AskMiguel(December92010blogpost)MonoMac:我们刚刚发布了MonoMac0.4,现在我们

c# - 静态构造函数创建 [Mono.Cecil]

我的项目中的静态构造函数一直存在一些问题。我需要向类型“”添加一个静态构造函数,以便调用我的资源解密方法。在下面的gif中,您会看到我遇到的问题。我还将包含代码片段。创建cctor的代码:MethodDefinitionmethod=newMethodDefinition(".cctor",Mono.Cecil.MethodAttributes.Private|Mono.Cecil.MethodAttributes.Static|Mono.Cecil.MethodAttributes.HideBySig|Mono.Cecil.MethodAttributes.SpecialName|M

c# - 与 .NET 和 Mono 兼容的网格控件?

您知道与.NET和Mono兼容的网格控件吗?DataGridView在Mono上似乎有很多问题,而GTK#控件依赖于GTK+,因此您需要将它安装在通常不存在的Windows机器上。 最佳答案 您可能想试用Mono2.0的预览版。DataGridView在此版本中要好得多,但仍有几个地方仍然存在不足。http://mono.ximian.com/monobuild/preview/download-preview/ 关于c#-与.NET和Mono兼容的网格控件?,我们在StackOverf

c# - ConfuserEx:Mono 上的 System.TypeInitializationException

我无法让经过混淆处理的应用程序在单声道上运行。Unobfuscated适用于单声道。当我在win7上使用.net框架时,它在两种变体中都没有问题。这是我得到的异常:UnhandledException:System.TypeInitializationException:Thetypeinitializerfor''threwanexception.--->System.NullReferenceException:Objectreferencenotsettoaninstanceofanobjectat.‮‮‎‫‎âªâ€­â€‹â€ªâ€«âªâ¬â€Žâªâ¯