Таймер перезапуска для всех, когда кто-то нажимает кнопку - PullRequest
0 голосов
/ 06 мая 2020

У меня есть страница аукциона на моем веб-сайте (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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...