2012-08-03 45 views
1

我正在浏览一些我继承的代码。该页面有一个更新面板,里面有一个定时器控件。UpdatePanel中的定时器滴答事件的单次触发

<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; 

计时器disabled..most可能使蜱触发一次。在后来的情况下,我们必须在那里线程就会ATLEAST两个地方睡觉intoduce在处理一些等待:

Thread.Sleep(18000); 

Thread.Sleep(10 * 1000); 

这两个线程一段时间,但停止处理导致回传在不同的线程和tick事件被触发在每个线程上......

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

任何帮助将不胜感激。

+1

'UpdateMode = conditional' is missing? – 2012-08-03 19:14:37

+0

我无法添加触发器,因为它们不在原始代码中。任何其他建议 – shazia 2012-08-06 22:38:00

+0

开始50美元的赏金 – 2012-08-07 03:40:29

回答

2

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

<asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="400" > 
</asp:ScriptManager> 
相关问题