У меня есть страница аукциона на моем веб-сайте (Live Auction), поэтому я хочу, чтобы функция перезапуска таймера для всех, когда кто-либо из людей нажимает кнопку ставки, но я могу перезапустить только того человека, который нажмите кнопку ставки не все, кто присутствует на аукционе.
Вот мой код:
In! Page.isPostback ()
if (Session["AuctionTimer"] == null)
{
Session["AuctionTimer"] = new CountDownTimer(TimeSpan.Parse("00:00:30"));
(Session["AuctionTimer"] as CountDownTimer).Start();
}
класс таймера обратного отсчета
public class CountDownTimer
{
public TimeSpan TimeLeft;
System.Threading.Thread thread;
public CountDownTimer(TimeSpan original)
{
this.TimeLeft = original;
}
public void Start()
{
thread = new System.Threading.Thread(() =>
{
while (true)
{
if (!TimeLeft.Equals(TimeSpan.Parse("00:00:00")))
{
System.Threading.Thread.Sleep(1000);
TimeLeft = TimeLeft.Subtract(TimeSpan.Parse("00:00:01"));
}
else
{
thread.Abort();
}
}
});
thread.Start();
}
}
И функция перезапуска вызывается, когда человек нажимает кнопку ставки:
protected void btnBID_Click(object sender, EventArgs e)
{
.......
RestartStopwatch();
}
private void RestartStopwatch()
{
Session["AuctionTimer"] = null;
Session["AuctionTimer"] = new CountDownTimer(TimeSpan.Parse("00:00:30"));
(Session["AuctionTimer"] as CountDownTimer).Start();
}