Я немного поработал над написанием асинхронного кода, но у меня все еще есть много вопросов, касающихся моей задачи программирования. В моем приложении веб-форм, нажав кнопку, я хочу запустить метод в другом классе, который выполняет задачу (вставляя данные в db) при обновлении экрана при его прогрессе. Например:C# - асинхронный код, который обновляет ход метода до страницы
btn1_OnClick(object sender, EventArgs e)
{
//call methodA asynchronously?
}
Methoda содержится в другом классе и запросов к базе данных:
public class ClassA
{
public void methodA(param)
{
//insert data into database
//create string that notifies the progress of the method (should be displayed on page)
//insert more data into database
//alter string to re-notify of the progress of the method (to be displayed on page)
}
}
Как вы можете видеть, я хочу, чтобы заполнить строку, которая будет отображаться на странице в виде как метод прогрессирует. Я не знаю, будет ли метод A возвращать тип «void», но я все равно его разместил. Я полагаю, что эта задача должна быть завершена асинхронно или, возможно, с использованием веб-службы. Так как я буду делать это программно?
EDIT
Я прочитал много статей, но никто не похоже, чтобы эффективно описать процесс в моей ситуации. Все они просто описывают либо отображение сообщения в начале или в конце, когда работает работа, работающая в течение длительного времени (в данном случае метод А). Я хочу, чтобы метод выплевывал строку (описывая, где она находится в методе i.e. «вставил первый набор данных» ...) и показывая его на страницу несколько раз по мере ее продвижения. Является ли это слишком амбициозным в моем случае с веб-формами ... Что делать, если я должен был вызвать веб-сервис, который выполняет всю работу и возвращает сообщения?
Существует множество вопросов о том, как «показать прогресс продолжительной работы на веб-странице» ... Рассмотрите поиск самостоятельно, поскольку не похоже, что кто-то знает хороший дубликат. –
@AlexeiLevenkov Пожалуйста, прочтите мое первое редактирование. – frontin
Я не знаю .... Myaby вы должны показать ссылку на лучшее из многих статей ... Лучшие ссылки, которые я получаю для http://www.bing.com/search?q=c%23%20how % 20to% 20show% 20progress% 20of% 20long% 20running% 20operation% 20on% 20web% 20page most say "start operation, каждый шаг должен обновлять прогресс в каком-то постоянном состоянии, а не опрос для этого прогресса через клиентский скрипт по таймеру". Вы можете добавить «длинный опрос», «websocket» или «singnalR» для поиска запросов для решений с более немедленной обратной связью. –