Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
|
|||
|---|---|---|---|
|
#18+
Никак не могу решить простую задачку ... Помоги новичку примером. Задача такая. Во время бинда грида я вторым потоком делаю запрос через вебсервис, результат кладу в БД, и хочу снова сделать бинд того же грида, если он визибл. Если делать через ThreadStart, то узнать о том что второй поток выполнен видимо невозможно.. или я не знаю как. Если делать через BeginInvoke/EndInvoke, то можно поймать конец потока и выполнить коллбэк-метод, но при этом UI Блокируется( Пробовал также через BackgroundWorker, UI Тоже блокируется на конца выполнения фонового потока.. По логике можно сделать через таймер, ежесекундно проверять переменную которая будет изменяться по отработке фонового потока, но при этом срабатывает "крутилка" обновления страницы и происходит постбэк.. не комильфо. Посоветуйте пожта как сделать нормально.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2014, 17:37 |
|
||
|
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
|
|||
|---|---|---|---|
|
#18+
asunny, при чём тут ASP.NET? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2014, 17:50 |
|
||
|
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
|
|||
|---|---|---|---|
|
#18+
hVostt, А куда ? Раздела по c# я не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2014, 18:06 |
|
||
|
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
|
|||
|---|---|---|---|
|
#18+
asunny, если мы говорим про ASP.NET, то эти все пляски с бэкграундворкерами совершенно бессмысленны изначально. проще найти булавку и тыкать себе в причинное место раз в 5 минут. можно "параллельно" работать двумя руками. больше удовольствия для истинного мазохиста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2014, 18:18 |
|
||
|
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
|
|||
|---|---|---|---|
|
#18+
asunnyПосоветуйте пожта как сделать нормально.. было бы неплохо, если бы ты описал, какую задачу/проблему ты хочешь решить. пока без привязки к C#. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2014, 18:20 |
|
||
|
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
|
|||
|---|---|---|---|
|
#18+
hVostt, Описываю задачу еще раз. Есть интернет магазин. Бьется артикул, из БД в гриде выводятся результаты. Еще в тот же грид надо добавить результаты из вебсервиса, но ответ идет около 4 сек. Чтобы показать полный ответ достаточно сделать DataBind снова, т.к. результат вебсервиса упал в БД. Чтобы магаз не тормозил, свои результаты хочу показывать сразу, а если юзер еще не ушел на другую страницу, то в момент когда пришел ответ от вебсервиса, обновить грид. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2014, 18:52 |
|
||
|
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
|
|||
|---|---|---|---|
|
#18+
asunny, 1. покажите что можно сразу 2. добавьте на страницу скрипт, опрашивающий сервер к примеру раз в 2-3 секунды 3. когда данные будут готовы отдайте скрипту эти данные и: а) перезагрузите страницу с полными данными (из БД) б) добавьте на страницу недостающие данные с помощью скрипта определите полноту данных в одном месте -- в БД. поймите, что веб -- это механизм запрос-ответ, без возможностей обратной связи (технически, есть вебсокеты, но вам это не поможет). т.е. нет возможности со стороны сервера уведомить клиента, что данные готовы. поэтому требуется опрашивать сервер. поэтому ваши пляски с определением завершения операции фоновым потоком -- бесконечно бессмысленное занятие. когда фоновый поток завершит свою операцию, он запишет результаты в БД и всё, точка. берите эти данные и отдавайте клиенту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2014, 19:37 |
|
||
|
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
|
|||
|---|---|---|---|
|
#18+
hVostt, Спасибо за развернутый ответ. Буду делать через таймер. Надежды на то что бесконечно могущественный асп отправит ответ без запроса не оправдались.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2014, 20:02 |
|
||
|
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
|
|||
|---|---|---|---|
|
#18+
asunnyбесконечно могущественный асп asp.net тут не при чём. такова архитектура web. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2014, 20:50 |
|
||
|
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
|
|||
|---|---|---|---|
|
#18+
hVosttasunny, 1. покажите что можно сразу 2. добавьте на страницу скрипт, опрашивающий сервер к примеру раз в 2-3 секунды 3. когда данные будут готовы отдайте скрипту эти данные и: а) перезагрузите страницу с полными данными (из БД) б) добавьте на страницу недостающие данные с помощью скрипта Вопрос... Имеем код: Gridview1.Databind(); Thread.sleep(5000); В таком примере грид не отображается пока не пройдет 5 секунд после обновления страницы. Можно ли сделать так чтобы сначала отобразился грид , а уже потом поток ушел в спячку ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2014, 19:00 |
|
||
|
Выполнить код вторым потоком и поймать результат без блокировки потока - help!
|
|||
|---|---|---|---|
|
#18+
asunnyМожно ли сделать так чтобы сначала отобразился грид , а уже потом поток ушел в спячку ? нет. запустите свою длительную асинхронную задачу в отдельном потоке, например Task.Factory.StartNew, и выводите свой грид. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2014, 19:14 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=77&tid=1357497]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 332ms |

| 0 / 0 |
