Do we need to dispose or terminate a thread in C# after usage?
c#, multithreading, smtpclient
Solution
NO!
there is no need to dispose the Thread object (BTW, the Thread class does not provide the Dispose method).
Problem
I have the following code: ``` public static void Send(this MailMessage email) { if (!isInitialized) Initialize(false); //smtpClient.SendAsync(email, ""); email.IsBodyHtml = true; Thread mailThread = new Thread(new ParameterizedThreadStart( (o) => { var m = o as MailMessage; SmtpClient client= new SmtpClient("smtpserveraddress"); client.Send(m); })); mailThread.Start(email); ``` I want the mail sending to be done in the background without interfering with the main thread. I do not care when it is finished. Do I need to somehow handle the dispose of the created thread (mailThread)? Or does it automatically dispose when it finishes its job? Please do not recommend the SendAsync method. I would like to create the thread manually. Mail.Send was only an example scenario. Thank you.