powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Выполнить код вторым потоком и поймать результат без блокировки потока - help!
11 сообщений из 11, страница 1 из 1
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
    #38600227
asunny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никак не могу решить простую задачку ... Помоги новичку примером.

Задача такая. Во время бинда грида я вторым потоком делаю запрос через вебсервис, результат кладу в БД, и хочу снова сделать бинд того же грида, если он визибл.

Если делать через ThreadStart, то узнать о том что второй поток выполнен видимо невозможно.. или я не знаю как.
Если делать через BeginInvoke/EndInvoke, то можно поймать конец потока и выполнить коллбэк-метод, но при этом UI Блокируется(
Пробовал также через BackgroundWorker, UI Тоже блокируется на конца выполнения фонового потока..
По логике можно сделать через таймер, ежесекундно проверять переменную которая будет изменяться по отработке фонового потока, но при этом срабатывает "крутилка" обновления страницы и происходит постбэк.. не комильфо.

Посоветуйте пожта как сделать нормально..
...
Рейтинг: 0 / 0
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
    #38600235
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asunny,

при чём тут ASP.NET?
...
Рейтинг: 0 / 0
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
    #38600242
asunny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

А куда ? Раздела по c# я не нашел.
...
Рейтинг: 0 / 0
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
    #38600248
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asunny,

если мы говорим про ASP.NET, то эти все пляски с бэкграундворкерами совершенно бессмысленны изначально. проще найти булавку и тыкать себе в причинное место раз в 5 минут. можно "параллельно" работать двумя руками. больше удовольствия для истинного мазохиста!
...
Рейтинг: 0 / 0
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
    #38600250
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asunnyПосоветуйте пожта как сделать нормально..

было бы неплохо, если бы ты описал, какую задачу/проблему ты хочешь решить. пока без привязки к C#.
...
Рейтинг: 0 / 0
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
    #38600262
asunny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

Описываю задачу еще раз.

Есть интернет магазин. Бьется артикул, из БД в гриде выводятся результаты.
Еще в тот же грид надо добавить результаты из вебсервиса, но ответ идет около 4 сек. Чтобы показать полный ответ достаточно сделать DataBind снова, т.к. результат вебсервиса упал в БД.
Чтобы магаз не тормозил, свои результаты хочу показывать сразу, а если юзер еще не ушел на другую страницу, то в момент когда пришел ответ от вебсервиса, обновить грид.
...
Рейтинг: 0 / 0
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
    #38600295
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asunny,

1. покажите что можно сразу
2. добавьте на страницу скрипт, опрашивающий сервер к примеру раз в 2-3 секунды
3. когда данные будут готовы отдайте скрипту эти данные и:
а) перезагрузите страницу с полными данными (из БД)
б) добавьте на страницу недостающие данные с помощью скрипта

определите полноту данных в одном месте -- в БД.
поймите, что веб -- это механизм запрос-ответ, без возможностей обратной связи (технически, есть вебсокеты, но вам это не поможет). т.е. нет возможности со стороны сервера уведомить клиента, что данные готовы. поэтому требуется опрашивать сервер. поэтому ваши пляски с определением завершения операции фоновым потоком -- бесконечно бессмысленное занятие. когда фоновый поток завершит свою операцию, он запишет результаты в БД и всё, точка. берите эти данные и отдавайте клиенту.
...
Рейтинг: 0 / 0
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
    #38600313
asunny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

Спасибо за развернутый ответ.
Буду делать через таймер.
Надежды на то что бесконечно могущественный асп отправит ответ без запроса не оправдались..
...
Рейтинг: 0 / 0
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
    #38600332
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asunnyбесконечно могущественный асп

asp.net тут не при чём. такова архитектура web.
...
Рейтинг: 0 / 0
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
    #38603450
asunny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttasunny,

1. покажите что можно сразу
2. добавьте на страницу скрипт, опрашивающий сервер к примеру раз в 2-3 секунды
3. когда данные будут готовы отдайте скрипту эти данные и:
а) перезагрузите страницу с полными данными (из БД)
б) добавьте на страницу недостающие данные с помощью скрипта



Вопрос...

Имеем код:

Gridview1.Databind();
Thread.sleep(5000);

В таком примере грид не отображается пока не пройдет 5 секунд после обновления страницы.
Можно ли сделать так чтобы сначала отобразился грид , а уже потом поток ушел в спячку ?
...
Рейтинг: 0 / 0
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
    #38603463
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asunnyМожно ли сделать так чтобы сначала отобразился грид , а уже потом поток ушел в спячку ?

нет. запустите свою длительную асинхронную задачу в отдельном потоке, например Task.Factory.StartNew, и выводите свой грид.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Выполнить код вторым потоком и поймать результат без блокировки потока - help!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]