我有一个在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");
}
}
我在pageload事件中有3个函数,两个用于从DB获取值,另一个用于上面显示。
这两个功能都应该是服务电话吗?
我想要的是,页面应该快速加载,如果有一个功能需要花费很多时间,它应该在后台运行并在完成时显示,并且在此过程中如果用户想要导航到新页面它应该杀死它并继续前进。