0

我有以下代码:

using (MySqlConnection conn = new MySqlConnection(connStr))
{
    conn.Open();

    cmd = conn.CreateCommand();
    cmd.CommandText = "SELECT * FROM Events";
    cmd.CommandType = CommandType.Text;
    cmd.ExecuteNonQuery();
}

通过阅读该站点上的几篇文章,建议DbCommand应该在 using 块中,但是,我不明白为什么需要这样做。Connection 已关闭,那么 DbCommand 需要使用 using 块吗?如果一个类从 IDisposable 继承,是否必须使用 using 块或手动调用 Dispose?

我在上面的代码上运行了一个有 100 个线程的模拟器,并且在上面的代码上运行了一个带有 using 块的代码,DbCommand我看不到内存使用情况的真正差异。

4

1 回答 1

0

DbCommand是抽象的,并且不预先假定特定于供应商的子类将拥有哪些本地资源,以及它们应该以什么顺序释放。块的正确嵌套using似乎是一种合理的隐式编码约定。

于 2015-07-07T11:54:53.857 回答