English 中文(简体)
当某个物体成为孤儿时,我如何处置该物体(即比图)?
原标题:How can I dispose of an object (say a Bitmap) when it becomes orphaned?

我有A类,向其他B类、C类提供比图。

现在,A类在一环的圈子里有其比照图,而它会失去参考。

虽然它仍然处于困境,但几个班子可以检查同样的比特图,因此,B和C可以同时提及这一比特图。 但也可能发生的情况是,其中只有一人检查了比特图,甚至没有一张。

如果没有A、B或C的任何要求,我就想再谈一下。

我相信,我必须使B和C在使用时对一些信号负责,但我不相信整个逻辑。

如果有人呼吁,例如,3次:

1 - 当比特图从A类中点燃时

2 - B完成

3-C完成时

如果这是最好的战略,我如何评价孤儿的状况?

任何建议都会受到欢迎。

最佳回答

同等学历 a 提供包装品,而不是直接绘制比图。 包装类别应自备可识别,并可用于保持反射。 每位消费者都可以获得自己的包装,其中参照的是同一个比图。 班级 将所有标本和包裹的圈套设起来。 在A类中,如果消费者不要求处置,则使用微弱的推论来跟踪包装,那么它将获得GC d,而供应商可以知道它不再提及。

问题回答

<代码>Bitmap 继承<编码>Image,实施IDisposable,因此,在你通过某一例重新做时,请打电话<代码>Dispose(<>)。 这将清理<代码>中未管理的资源。 图像/编码。

但是,<代码>Image还执行定稿人,因此,如果由于某种原因,你不能打电话到<代码>Dispose(),资源将在案件最后审定时收回,在案件不再提及后某个时候会出现。

如果记忆的使用没有这样一个大问题,正确性和清晰性就更为重要......

每个接收人自己填写的比照图,在使用该地图的代码上使用()说明。

你的管理守则现在非常容易,你的消费法典也非常容易。 非常容易看到(prove?)说,即使你的消费者可能有例外和其他法律途径,使得很难(或不可能)确保参考反射(或这样)得到缓解,整个工作也会奏效。

利用你节省时间为共享的借方图制定自己的GC解决方案,为您的服务器收取钱,并购买另外的RAM。

另一方面,如果顶峰的记忆消耗是关键问题......但你仍然希望采取一种安全的做法,即你可以确保轨道寿命得到适当管理,而不论消费者法如何,你都会回避问题,并说生产者完全负责自己read(或read)图像上的所有业务。 因此,不向其他班子提供图像,就请其他班子采取行动,以掌握图像。 您对有待采取的行动持怀疑态度,并且可以向前看,以确定哪些图像来自缓冲地带,其依据是今后不做任何工作。

由于这些图像可能出现在大物体上,因此,必须妥善管理其寿命,以尽量减少大物体的碎裂。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签