ASP.NET Threads и статический класс - PullRequest
1 голос
/ 07 марта 2012

Я создал Scheduler класс, который вызывает статический метод MailBot.Start, когда приложение ASP.NET запущено.Я подозреваю, что код не является потокобезопасным, потому что некоторые переменные (возможно, не уверены в этом) в методе MailBot.Start смешаны.Это правда?Я хотел бы иметь только один метод running для всего приложения ASP.NET.

void Application_Start(object sender, EventArgs e)
{

    WebHelper.Scheduler(TimeSpan.FromMinutes(2), TimeSpan.FromMinutes(10), MailBot.Start);

}


public static class MailBot
{
    public static void Start()
    {

        //The actual code...

    }
}


     public delegate void SchedulerEvent();

     public static void Scheduler(TimeSpan firstTime, TimeSpan interval, SchedulerEvent callback)
            {
                var timer = new System.Timers.Timer { Interval = firstTime.TotalMilliseconds };
                timer.Elapsed += delegate
                                     {

                                         timer.Enabled = false;
                                         try
                                         {
                                             timer.Interval = interval.TotalMilliseconds;

                                             callback();


                                         }
                                         finally
                                         {
                                             timer.Enabled = true;
                                         }
                                     };
                timer.Start();
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...