簡體   English   中英

使用計時器每 5 分鍾運行一次 Asp.net 代碼

[英]Asp.net running code ever 5 min with timer

我在 page_load 上收到以下錯誤:

c#沒有給出對應於所需形式參數的參數

為什么是這樣?

protected void Page_Load(object sender, EventArgs e)
{
    timerevent();
}

DataSet _dataSet = new DataSet();
private DataTable _dataTable; 

string _sqlQuery = @"show slave status;";
string _sqlStop = @"stop slave;";
string _sqlStart = @"start slave;";
System.Timers.Timer mytimer = new System.Timers.Timer();


private void SetTimer()
{
    mytimer.Elapsed += new ElapsedEventHandler(timerevent);
    mytimer.Interval = 1000;
}

private void timerevent(object sender, ElapsedEventArgs e)
{
    BindData();
}

public void BindData()
{
    mytimer.Start();
}

你有沒有停下來考慮一下頁面的生命周期? 想想看。

當 HTTP 請求傳入時,會創建 Page 類的一個實例。一旦頁面經歷了其所有生命周期事件,就會向客戶端發送 HTTP 響應。 此時,Page 實例將被銷毀。 它會消失,帶走存儲在其中的任何狀態(例如包含計時器的字段)。

由於這些原因,您嘗試的方法根本行不通。

如果您想每 5 分鍾更新一次客戶端的 DOM 更新,您要么必須擁有一些包含計時器並啟動新 HTTP 請求的客戶端代碼 (JavaScript),要么使用網絡套接字 ( SignalR ) 之類的技術來推送更改. 如果您確實選擇了 SignalR 方法,您可以使用具有調度功能的單獨服務(可能使用HangfireQuartz )來啟動推送。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM