У меня есть функция, выполнение которой занимает много времени в веб-приложении.
Я проверил это с помощью профилировщика и своей регистрации.
У меня запущены другие функциив той же загрузке страницы.
Каков наилучший способ отобразить остальные значения из этих функций и сохранить эту функцию в потоке и отобразить ее в метке после ее завершения?
ЭтоФункция используется для получения событий в приложении, что занимает время.
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 функции в событии загрузки страницы, две для получения значений из БД, а другая показана выше.
Должны ли обе эти функции быть служебными вызовами?
Что я хотел, так это то, что страница должна загружаться быстро, и если есть функция, занимающая много времени, она должна работать в фоновом режиме и отображаться, когдасделано и в процессе, если пользователь хочет перейти на новую страницу, он должен убить ее и двигаться дальше.