草庐IT

unity-内存GC

全部标签

c# - 如何在不分配大量内存的情况下显示快速更新的图像?

我在超声机上安装了一个WPF应用程序,它以每秒30帧以上的速度显示用C++生成的超声图像。据我了解,在WPF中显示图像的正常过程是为您的图像创建一个BitmapSource并为您的图像设置Source,然后使其失效并显示。由于BitmapSources没有实现IDisposable,使用这种方法迫使我每秒创建30个BitmapSources。对于32bppArgb格式的640x480图像,每秒分配大约30MB/秒的内存,然后每10秒处理一次垃圾,导致明显的延迟。显然不是可接受的解决方案。我目前的解决方案是:在C++中:我在托管C++中创建一个System.Drawing.Bitmap(

c# - Windows 服务上的 Unity DI,可能吗?

我正在开发一个Windows服务来做一些周期性的操作,我可以使用Unity从那里的另一个库中注入(inject)我的类吗?我想在我的服务上使用[Dependency]属性,在Windows服务启动的入口点注册组件。例子:staticclassProgram{staticvoidMain(){ServiceBase[]ServicesToRun;UnityConfig.RegisterComponents();ServicesToRun=newServiceBase[]{newEventChecker()};ServiceBase.Run(ServicesToRun);}}publics

c# - Unity3D UI,计算拖动项目的位置?

如今,在Unity中拖动UI元素非常容易:制作一些UI项目。添加组件->事件->事件触发器。放在下面的脚本上。单击以添加四个明显的触发器。大功告成。但是。我完全迷失在指针坐标和UI坐标之间的关系(如RectTransform等中所见)。在下面的DragIt中:如何在手指下正确移动UI面板?假设您有一个大面板,面板中有十个UIButton,按钮上有Dragster。RectTransform坐标和鼠标指针有什么关系...简而言之,如何在下面的DragIt()中移动其中一个按钮?/*modernUnitydragofUIelement*/usingUnityEngine;usingUnit

c# - 分配给从 Internet 下载文件的最佳内存缓冲区大小是多少?

分配给从Internet下载文件的最佳内存缓冲区大小是多少?一些sample说它应该是1K。好吧,我需要大体上知道为什么会这样?还有,如果我们下载小的.PNG或大的.AVI有什么区别?StreamremoteStream;StreamlocalStream;WebResponseresponse;try{response=request.EndGetResponse(result);if(response==null)return;remoteStream=response.GetResponseStream();varlocalFile=Path.Combine(FileManage

c# - 将内存流对象序列化为字符串

现在我正在使用XmlTextWriter将MemoryStream对象转换为字符串。但我想知道是否有更快的方法将内存流序列化为字符串。我按照此处给出的代码进行序列化-http://www.eggheadcafe.com/articles/system.xml.xmlserialization.asp已编辑串流到字符串ms.Position=0;using(StreamReadersr=newStreamReader(ms)){stringcontent=sr.ReadToEnd();SaveInDB(ms);}串流stringcontent=GetFromContentDB();byt

c# - 从内存加载 Picturebox 图像?

我似乎不知道如何从内存中的位图中加载pictureBox图像。是否有可能或者我必须为位图创建临时文件? 最佳答案 内存中的图片是什么格式?如果你有一个实际的Bitmap对象,只需将它分配给PictureBox,如dtb所建议的:pictureBox.Image=bitmap;如果您将图像作为一系列字节保存在流中,则需要从流中加载图像:varimage=Image.FromStream(stream);pictureBox.Image=image;如果您有位图的WindowsGDI句柄,请使用varimage=Image.FromHb

c# - 为什么要调用 Dispose()?不会发生内存泄漏?

编辑:我的问题没有得到我正在寻找的主要答案。我不清楚。我真的很想知道两件事:不能调用Dispose()会导致内存泄漏吗?如果您有一个大型程序并且从不对任何IDisposable对象调用Dispose(),那么最糟糕的事情是什么?我的印象是,如果未对IDisposable对象调用Dispose(),可能会发生内存泄漏。根据关于此thread的讨论,我的看法是不正确的;如果未调用Dispose(),则不会发生内存泄漏。那为什么还要调用Dispose()呢?是否只是立即释放资源,而不是稍后释放资源?如果您有一个大型程序并且从不对任何IDisposable对象调用Dispose(),那么最糟糕

c# - 托管代码中是否可能发生内存泄漏? (特别是 C# 3.0)

例如,如果我有一个分层数据结构:classNode{publicListchildren;}它被填充到许多层次,然后在其中一个parent去:myNode.children.Clear();这将清除所有对直系子代的引用——但是那些直系子代引用的所有孙代、曾孙代等又如何呢?C#是否足够聪明,知道它们不再需要并且将被垃圾收集?我读过使用WPF数据绑定(bind)而不实现接口(interface)INotifyChanged会导致内存泄漏:http://blogs.msdn.com/b/micmcd/archive/2008/03/07/avoiding-a-wpf-memory-leak-

c# - 使用带有额外参数的 Unity Resolve 创建对象

我正在使用Prism,它也提供了很好的UnityIoC容器。我是这个概念的新手,所以我还没有完全掌握它。我现在想做的是使用IoC容器创建一个对象,但也传递一个额外的参数。请允许我用一个例子来解释......:我有一个接受命令对象的类。这是在IoC容器中注册的,因此它会很好地处理它:publicclassPerson{publicPerson(IApplicationCommandscommands){..}..}Personperson=_container.Resolve();现在-我想传递另一个参数-例如这个人的名字。但是,我仍然想使用IoC容器来处理解析,从而从IoC容器中获取其

c# - 忽略 IDisposable 会导致内存泄漏吗?

在answerIwrote的评论中我们讨论了内存泄漏和IDisposable,但我们没有得出任何真正的结论。处理非托管资源的类可能会实现IDisposable。如果忽略它并且既不调用Dispose也不将对象包装在using中-这会导致非托管资源被泄漏吗?还是会在GC回收对象的时候进行适当的清理?我们可以假设处理非托管资源的类具有IDisposable的正确实现,包括终结器等。 最佳答案 它不会导致内存泄漏。事实上,Dispose与内存管理完全无关。它将造成资源泄漏。虽然GC通常会清理它,但这可能太少也太晚了。省略Dispose(us