以下代码是否会泄漏内存?如果有,有关优化的建议吗?
SPWeb web = (SPWeb)properties.Feature.Parent; // comes from the event receiver
//... lots of other code
// the below is the focal point.
foreach (SPWeb childWeb in web.Webs)
{
try
{
// lots of heavy processing with the childWebs
}
finally
{
if (childWeb != null)
{
childWeb.Dispose();
}
}
}
答案 0 :(得分:3)
您发布的代码应该没问题。但是,根据您在try-statement中对childWeb执行的操作,可能会导致内存泄漏。你可以发布整个代码吗?你怀疑内存泄漏吗?
答案 1 :(得分:1)
根据Disposing Objects,您的代码与SPWeb.Webs的良好编码实践相匹配。
正如该页面所述,我建议下载并使用SPDisposeCheck作为正确代码的验证和潜在内存泄漏的识别。