xamarin.ios – MonoTouch:处理ReceiveMemoryWarning的正确方法

前端之家收集整理的这篇文章主要介绍了xamarin.ios – MonoTouch:处理ReceiveMemoryWarning的正确方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个MonoTouch应用程序在野外有时会死于mprotect errno 12 (out of memory),它似乎总是事先得到至少一个ReceiveMemoryWarning通知.

我想知道回应这个问题的正确方法是什么.我的应用程序可以释放两种类型的东西:OpenGL纹理和托管内存.

我对此的疑问是:

> OpenGL纹理:删除OpenGL纹理会有帮助吗?
>托管内存:我不能直接释放它,但我可以将它引用为null.够了吗?
> GC.Collect:我应该在处理程序的末尾调用GC.Collect()吗? GC.Collect会立即执行任何操作,还是为将来安排集合?
>我可以/应该做些什么来回应这个?

解决方法

我在使用OpenGL的应用程序中遇到了一段时间.对我来说,这确实是内存泄漏.

[的DllImport( “/系统/图书馆/框架/ CoreGraphics.framework / CoreGraphics中”)]
public static extern void CGDataProviderRelease(IntPtr provider);

和你打电话后
GL.TexImage2D …..

你需要调用CGDataProviderRelease(data.Handle);

既然如此,你可能想看看这个:

http://forums.monotouch.net/yaf_postst1541.aspx

猜你在找的iOS相关文章