gpt4 book ai didi

c# - 程序强制关闭时 "using"是否 block 释放资源

转载 作者:行者123 更新时间:2023-11-30 13:55:36 28 4
gpt4 key购买 nike

按标题提问。

我有一段代码可以做到这一点:

    using (SqlConnection dbcon = new SqlConnection(connectionString))
using (SqlDataAdapter dataAdapter = new SqlDataAdapter(statement, dbcon))
{
dat_set = new System.Data.DataSet();

dbcon.Open();
dataAdapter.Fill(dat_set, name);
}

当我在 dataAdapter 仍在填充数据集时强制退出程序时,程序卡住并停止响应。

我知道“使用” block 会在资源超出范围时释放资源,但在强制终止的情况下,资源是否会正常释放?

最佳答案

如果进程退出,所有 native 资源(网络句柄、文件句柄等)都会被操作系统清除。我不会期望 using 语句在这里生效 - 我怀疑操作系统会过于努力地杀死线程以致于无法获得自己进行清理的机会。这意味着您最终仍会完成清理...但是您可能希望作为 using 语句的一部分发生的任何刷新(例如,在文件写入场景中)可能不会发生.

关于c# - 程序强制关闭时 "using"是否 block 释放资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32836550/

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