计时器的单一火灾在UpdatePanel中记录事件

时间:2012-08-03 18:53:12

标签: asp.net asp.net-ajax

我浏览了一些我继承的代码。该页面有一个更新面板,其中有一个计时器控件。

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
  <asp:Timer ID="process" runat="server" Interval="1500" OnTick="process_Tick">
  </asp:Timer>
 </asp:UpdatePanel>

在计时器的tick事件开始后面的代码中:

  protected void process_Tick(object sender, EventArgs e)
    {
        process.Enabled = false;

计时器被禁用..很可能只是勾选了一次。在事件的后面,我们至少有两个地方让线程处于睡眠状态,以便在处理中引入一些等待:

Thread.Sleep(18000);

以及

Thread.Sleep(10 * 1000);

这两个线程停止处理一段时间,但会导致不同线程上的回发,并且每个线程都会触发tick事件....

如何阻止创建这些线程并一次又一次地触发tick事件。由于此代码,表单会多次提交。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

将AsyncPostBackTimeout属性添加到ScriptManager。默认情况下,它会在90秒后超时。因此,通过增加超时,不会一次又一次地触发计时器的Tick事件。

  <asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="400" >
</asp:ScriptManager>