我有一個功能,它需要花費大量的時間在Web應用程序中執行。處理花費很多時間的函數線程
我已經用探查器和我的日誌記錄測試過了。
我有其他功能在同一頁面加載運行。
什麼是最好的方式來顯示這些函數的其餘值,並保持此函數在一個線程中,並在它完成後顯示在標籤中?
此函數用於獲取需要時間的應用程序中的事件。
private void getEventErrors()
{
EventLog eventLog = new EventLog("Application", ".");
getEvents(eventLog.Entries);
}
private void getEvents(EventLogEntryCollection eventLogEntryCollection)
{
int errorEvents = 0;
foreach (EventLogEntry logEntry in eventLogEntryCollection)
{
if (logEntry.Source.Equals("XYZ"))
{
DateTime variable = Convert.ToDateTime(logEntry.TimeWritten);
long eventTimeTicks = (variable.Ticks);
long eventTimeUTC = (eventTimeTicks - 621355968000000000)/10000000;
long presentDayTicks = DateTime.Now.Ticks;
long daysBackSeconds = ((presentDayTicks - 864000000000) - 621355968000000000)/10000000;
if (eventTimeUTC > daysBackSeconds)
{
if (logEntry.EntryType.ToString() == "Error")
{
errorEvents = errorEvents + 1;
}
}
}
}
btn_Link_Event_Errors_Val.Text = errorEvents.ToString(GUIUtility.TWO_DECIMAL_PT_FORMAT);
if (errorEvents == 0)
{
lbl_EventErrorColor.Attributes.Clear();
lbl_EventErrorColor.Attributes.Add("class", "green");
}
else
{
lbl_EventErrorColor.Attributes.Clear();
lbl_EventErrorColor.Attributes.Add("class", "red");
}
}
我在頁面加載事件3層的功能,兩到從DB獲取值,而另一個如上所示。
這兩個函數應該是服務調用嗎?
我想要的是,頁面加載速度很快,如果有一個函數花費很多時間,它應該在後臺運行,並在完成時顯示,如果用戶想要導航到新頁面,應該殺死它並繼續前進。
如何將它移動到它所屬的服務並進行AJAX調用? – 2012-03-28 20:47:45
把它移到一個服務..?對不起,但你能不能更清楚,因爲我是新手。我還沒有開始實施AJAX。一個例子會很有幫助。 Thnaks – user175084 2012-03-28 20:51:51