2012-08-03 59 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> 
相關問題