【发布时间】:2017-09-29 07:06:33
【问题描述】:
一旦使用块处理“b”,“渲染”中的图像会发生什么?
Bitmap rendered;
using(Bitmap b = new Bitmap(calcHeight, calcWidth))
{
using (Graphics g = Graphics.FromImage(b))
{
RenderMyBitMap(ref b);
rendered = b;
}
}
//Outside Using block
DoSomeThingElseWith(rendered);
【问题讨论】:
-
你自己试试看吧?
-
因为还有对
b的引用,所以不会被车库收集。当rendered设置为null时,下一轮的garage collection会将其带走。 -
我没有看到任何错误。找不到我是否正在填满内存(等待发生的 OOM 异常)或者它是安全的。黑蛙的回答似乎是有道理的。但无法检查。
标签: c# using-statement