Sto creando un test online a tempo in C# asp.net. L'ho creato utilizzando l'ora locale della macchina. Tuttavia, nel caso di disconnessione del database o blocco del sistema, il timer per il conto alla rovescia deve iniziare dall'istante in cui la macchina si è impigliata o in caso di disconnessioni impreviste del database. Ad esempio, l'utente sta rispondendo alle domande per 10 minuti e imprevisto. Dopo il recupero il conto alla rovescia deve iniziare da 10 minuti. Qualcuno può aiutarmi con la codifica in C#? Ho usato la seguente codifica, ma non è utile nello scenario sopra.Come fare un conto alla rovescia in un'applicazione web asp.net (C#)?
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");
}
Fare riferimento a [questo] (http://www.c-sharpcorner.com/UploadFile/babzi.naaz/3800/?ArticleID=c62a44ff-87cb-4a00-9956-8ed42bc4ce31) link – MAC