Проверьте все объекты, которые вы используете здесь, чтобы убедиться, что они не должны быть Dispose
-d (т.е. они реализуют IDisposable
?). В противном случае вы будете испытывать утечку неуправляемых ресурсов, связанных с каждым из этих объектов, каждый раз, когда выполняется этот код.
Вы можете использовать using
, чтобы аккуратно убедиться, что Dispose()
вызывается для таких объектов безопасным для исключения способом.
Пример - вместо:
SqlCommand cmd = new SqlCommand();
используйте это, чтобы обернуть код, который использует cmd
using (SqlCommand cmd = new SqlCommand())
{
}
Обратите внимание, что вашему классу EventLogger
может также потребоваться реализация IDisposable
, если это пользовательский класс, который оборачивает неуправляемые ресурсы через (например) File
или EventLog
.
Вы можете проверить другие встроенные классы, которые вы используете здесь и в других местах вашей программы, в документах MSDN.