У меня есть функция, которая занимает много времени в веб-приложении. Итак, я решил создать для него нить.обновить ярлык после загрузки страницы
Thread t = new Thread(getEventErrors);
t.Start();
Функция вычисляет значение и применяет его на этикетке.
Это проблема, потому что в asp.net страница загружается один раз, и метка не обновляется до тех пор.
Как реализовать это с помощью AJAX?
Есть ли способ загрузки страницы и после вычисления значения обновляется метка?
Любой образец кода будет высоко оценен.
Благодаря
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("Application Name"))
{
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");
}
}
это код .. но я хочу, чтобы обрабатывать все долгое время потребляющих кода с помощью Ajax.
Например, страница должна загружаться быстро, а длинная функция должна поддерживать загрузку в потоке с помощью курсора ожидания, когда значение получает, оно отображается на этикетке или любом другом элементе управления.
как долго? 5 секунд или 5 минут? – Aristos
Вы должны начать оптимизацию базы данных Query/Page Events и т. Д. Instedad для перехода к потокам. Это занимает много памяти. – Pankaj
@Aristos: для загрузки первой страницы требуется 7 -8 секунд, и если я удалю функцию, она займет 3 - 4 секунды. – user175084