Я создаю страницу в ASP. NET Framework, и мне нужно обновлять текст в Label каждые X секунд. Я пытался создать новый Thread
и вызвать Thread.Sleep()
, но он не работает, Все, что написано ниже Thread.Sleep не выполняется, я не знаю, почему. Так я нашел на inte rnet Таймер. Я создал таймер, и он не вызывает метод. Если я пишу это статически в .aspx, это работает:
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:Timer runat="server" id="UpdateTimer" interval="5000" ontick="UpdateTimer_Tick" />
<asp:UpdatePanel runat="server" id="TimedPanel" updatemode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger controlid="UpdateTimer" eventname="Tick" />
</Triggers>
<ContentTemplate>
<asp:Label runat="server" id="DateStampLabel" />
</ContentTemplate>
</asp:UpdatePanel>
protected void UpdateTimer_Tick(object sender, EventArgs e)
{
DateStampLabel.Text = DateTime.Now.ToString();
}
Это работает, но я хочу изменить время, поэтому я создал его динамически в C#:
if (!IsPostBack)
{
Timer timer = new Timer();
timer.Tick += UpdateTimer_Tick;
timer.Interval = 2000;
timer.Enabled = true;
}
Но UpdateTimer
никогда не звонил. Поэтому я попробовал это, и оно все еще не работает:
protected override void OnInit(EventArgs e)
{
if (!IsPostBack)
{
Timer timeoutTimer = new Timer();
timeoutTimer.ID = "timeouttimer";
timeoutTimer.Interval = 10000;
timeoutTimer.Tick += new EventHandler<EventArgs>(UpdarteTimer_Tick);
UpdatePanel timerUpdatePanel = new UpdatePanel();
timerUpdatePanel.ContentTemplateContainer.Controls.Add(timeoutTimer);
ScriptManager.GetCurrent(this.Page).RegisterAsyncPostBackControl(timeoutTimer);
this.Page.Form.Controls.Add(timerUpdatePanel);
}
base.OnInit(e);
}
Мне действительно нужно это на моем сайте. Пожалуйста, помогите мне. Как я могу создать некоторую процедуру в ASP. NET? Почему я не могу использовать Thread.Sleep на сайте и почему мой таймер не работает? Спасибо