Повторение функции каждые несколько секунд без таймера в asp.net - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь повторять выбранную случайную запись из таблицы каждые несколько секунд с таймером, но это не работает.

    protected void Page_Load(object sender, EventArgs e)
    { 


        var timer = new System.Timers.Timer(3000); // every 3 second
        timer.Elapsed += HandleTimerElapsed;

    }
    public void HandleTimerElapsed(object sender, ElapsedEventArgs e)
    { OleDbCommand cmd = new OleDbCommand("SELECT TOP 1 userdaten.image FROM userdaten ORDER BY Rnd(ID)", con);
        con.Open();
        OleDbDataReader dr = cmd.ExecuteReader();

        if (dr.HasRows)
        {
            while (dr.Read()) { PictureTrainLabel.Text = "~/Image/" + dr["image"].ToString(); }

            PictureTrain.ImageUrl = PictureTrainLabel.Text;



        }
        con.Close();
    }

Выбор случайной строки работает, но выполнение ее кода с повторяющимся методом не выполняется. Могу ли я повторить функцию без использования таймера в C#.

Ответы [ 3 ]

0 голосов
/ 11 февраля 2020

Можете ли вы попробовать, как показано ниже

private void Form1_Load(object sender, EventArgs e)
{
    Timer timer = new Timer();
    timer.Interval = (10 * 1000); //10 seconds
    timer.Tick += new EventHandler(HandleTimerElapsed);
    timer.Start();
}

private void HandleTimerElapsed(object sender, EventArgs e)
{
//add code
}
0 голосов
/ 11 февраля 2020

Существует лучший подход для добавления таймера на страницу для обновления элемента управления через определенные c интервалы времени. Пожалуйста, проверьте Это сообщение обсуждение

0 голосов
/ 11 февраля 2020

Мы используем Hangfire (https://www.hangfire.io/) для обработки фоновых заданий, он работает с ASP. net, он прост в настройке и использовании, и это широко используемый фреймворк.

Это хорошая статья, которая сравнивает ее с веб-заданиями. Статья сфокусирована на Azure, но она одинакова для других сред, в которых я ее использовал: https://rimdev.io/considering-hangfire-in-windows-azure-instead-of-webjobs/

...