Do we need to dispose or terminate a thread in C# after usage?

不想你离开。 提交于 2019-11-28 22:34:09

NO!

there is no need to dispose the Thread object (BTW, the Thread class does not provide the Dispose method).

Thread is diposed when its routine comes at end.
So NO, you don't have to do it, it's not necessary (nor possible I think).

Well, your SmtpClient should be Dispose()'d. I'd use the Task Parallel Library instead of creating raw threads:

public static void Send(this MailMessage email)
{
    if (!isInitialized)
        Initialize(false);
    //smtpClient.SendAsync(email, "");
    email.IsBodyHtml = true;

    Task.Factory.StartNew(() =>
    {
        // Make sure your caller Dispose()'s the email it passes in at some point!
        using (SmtpClient client = new SmtpClient("smtpserveraddress"))
        {
            client.Send(email);
        }
    });
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!