【发布时间】:2014-01-24 13:59:17
【问题描述】:
我有 Windows 服务,它每 10 秒定期检查一次数据库,检索尚未发送的邮件并执行待处理邮件的任务。
问题是内存逐步增加。如果需要任何调整,请提供帮助。
我的代码视觉基础:
Private Sub TimerMail_Elapsed(sender As Object, e As Timers.ElapsedEventArgs) Handles TimerMail.Elapsed
Dim SqlConnection As New SqlConnection("Data Source=.;Initial Catalog=xxx;Integrated Security=True")
Dim cmd As New System.Data.SqlClient.SqlCommand
cmd.CommandType = System.Data.CommandType.Text
cmd.CommandText = "SELECT DISTINCT UserName, objet, contenu, email FROM message WHERE envoimail='false'"
SqlConnection.Open()
cmd.Connection = SqlConnection
Dim monReader As SqlDataReader = cmd.ExecuteReader()
While monReader.Read
Try
EnvoiMail(monReader("objet"), monReader("contenu"), monReader("email"), mailport, serveur, username, password, True)
Dim SqlConnection2 As New SqlConnection("Data Source=.;Initial Catalog=CGP;Integrated Security=True")
Dim cmd2 As New System.Data.SqlClient.SqlCommand
cmd2.CommandType = System.Data.CommandType.Text
cmd2.CommandText = "UPDATE destinataire SET envoimail='true' WHERE UserName='" & monReader("UserName") & "'"
SqlConnection2.Open()
cmd2.Connection = SqlConnection2
cmd2.ExecuteNonQuery()
Catch ex As Exception
logger.Error(ex.Message)
End Try
Threading.Thread.Sleep(60000)
End While
End Sub
【问题讨论】:
标签: memory-leaks timer windows-services