Я создаю синхронизированный онлайн-тест на 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");
}