1

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

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

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

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

计时器被禁用..很可能只触发一次滴答声。稍后在事件中,我们至少有两个地方将线程置于睡眠状态以在处理中引发一些等待:

Thread.Sleep(18000);

并且

Thread.Sleep(10 * 1000);

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

如何停止创建这些线程并一次又一次地触发滴答事件。由于此代码,表单被提交了几次。

任何帮助都感激不尽。

4

1 回答 1

2

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

  <asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="400" >
</asp:ScriptManager>
于 2012-08-29T18:37:45.260 回答