Как сделать таймер обратного отсчета в веб-приложении asp.net (C #)?

Я создаю синхронизированный онлайн-тест на C # asp.net. Я создал его, используя локальное машинное время. Но в случае отключения базы данных или зависания системы таймер обратного отсчета должен начинаться с момента, когда машина зависла или неожиданно отключилась от базы данных. Например, пользователь отвечает на вопросы в течение 10 минут, и система неожиданно зависла. После выздоровления обратный отсчет должен начаться с 10 минут. Может ли кто-нибудь помочь мне с кодированием на С #?

Я использовал следующий код, но он бесполезен в приведенном выше сценарии.

int totalTime = (Convert.ToInt32(ViewState["totaltime"])) * 60;

DateTime startTime = (DateTime)ViewState["startTime"];
TimeSpan elaspedTime = DateTime.Now.Subtract(startTime);
Literal1.Text = elaspedTime.Hours.ToString() + "h" + ":" + elaspedTime.Minutes.ToString() + 
    "m" + ":" + elaspedTime.Seconds.ToString() + "s";

int finish = Convert.ToInt32(elaspedTime.TotalSeconds);

int remaingsec = (totalTime - finish);
TimeSpan remainingtime = TimeSpan.FromSeconds(remaingsec);
string answer = string.Format("{0:D2}h:{1:D2}m:{2:D2}s",
                    remainingtime.Hours,
                    remainingtime.Minutes,
                    remainingtime.Seconds,
                    remainingtime.Milliseconds);

LIteral2.Text =  answer;
if (totalTime == finish)
{
     lnkFinish_Click(sender, e);
     Response.Redirect(@"~/Error.aspx");
}
6
задан FIL 18 September 2018 в 10:22
поделиться