关于.NET中内存泄漏的问题

Yar*_*ein -1 .net memory-leaks

我的C#代码中有一些内存泄漏我有一个类,里面有一些SqlCommand字段.我还有一个Initialize()公共方法,它分配这些SqlCommands字段.

在分配之前,我检查(在Initialize的代码中)是否第一次进行分配(即不是第一次调用Initialize),如果它不是第一次在SqlCommands上调用Dispose,它似乎导致了内存泄漏....

现在重要的是要提到所有SqlCommands都使用相同的SqlConnection,并且这个连接在整个程序的生命周期中都是活跃的.通过某个静态类的静态属性访问连接...(让我们称之为ConnectionManager)

知道可能是什么问题吗?谢谢!

Luk*_*vin 6

Krembo,使用SqlConnection和SqlCommand对象的推荐方法是在using语句中,如MSDN中的示例代码所示 :

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    // Do work here; connection closed on following line.
}
Run Code Online (Sandbox Code Playgroud)

您可能应该在使用完SqlConnection对象后立即将其丢弃,而看起来这可能会很慢,在幕后,连接池将消除大部分开销.