void RunService() { var mailGeneratorThread = new Thread(StartMailGeneratorTread); mailGeneratorThread.SetApartmentState(ApartmentState.STA); var smsGeneratorThread = new Thread(StartSmsGeneratorThread); var emailSenderThred = new Thread(StartEmailSender); var smsSenderThread = new Thread(StartSmsSender); try { while (true) { HS.GetConfiguration(); if (!mailGeneratorThread.CheckThreadState()) { mailGeneratorThread.Start(); } if (!smsGeneratorThread.CheckThreadState()) { smsGeneratorThread.Start(); } if (!emailSenderThred.CheckThreadState()) { emailSenderThred.Start(); } if (!smsSenderThread.CheckThreadState()) { smsSenderThread.Start(); } Thread.Sleep(10000); } } catch (Exception ex) { HS.CreateExceptionLog(ex.Message, ex.ToString(), 10); RunService(); } }