gpt4 book ai didi

c# - Dispose() - 调用什么以及何时调用

转载 作者:行者123 更新时间:2023-12-02 06:45:24 25 4
gpt4 key购买 nike

我有这段代码:

using (var img = Bitmap.FromFile(path))
{
result = new Bitmap(img);
}

问题:

  1. 使用结束时是否立即调用Bitmap实例?或者正在等待垃圾收集?
  2. 它是从当前线程还是其他线程中释放的?

最佳答案

您实际上有两个位图实例 - imgresult

img 将在 using block 的末尾被释放(我相信在当前线程上)。编译器会在 finally block 中为您插入一个 Dispose 调用。

结果不会自动处置 - 无论消耗结果都需要处置它。

另请注意,处置和垃圾收集是两件不同的事情 - Dispose 将立即清理任何非托管资源(对于位图,它将是底层资源)图形对象),但任何托管资源都将在稍后的不确定时间被垃圾收集。

关于c# - Dispose() - 调用什么以及何时调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18661991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com