powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Многопоточный вызов функций
23 сообщений из 23, страница 1 из 1
Многопоточный вызов функций
    #39895621
izoldov-roskini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добры день всем, обрисую ситуацию:
Есть страница, она условно разделена на 3 части
Каждая из частей страницы заполняется отдельной функцией, которая вызывается
по событию $(document).ready
в теле функции прописано 3 вызова каждый из которых заполняет свою часть страницы
section1.load("/Init/getSection1")
section2.load("/Init/getSection2")
section3.load("/Init/getSection3")

На стороне сервера прописаны соотв. методы которые возвращают PartialView
НО, получается следующая картина, все 3 функции становятся в статус Pending и по факту выполняются по очереди а
не одновременно
Я ожидаю что время работы всех трех функций будет не больше чем время выполнения самой длинной
Но по факту получаем время равное сумме времени выполнения каждой функции

Подскажите, в какую сторону смотреть
AsynController, await и т.п. ни к чему не приводят - все равно все выполняется по порядку
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895625
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Они где в очередь встают, на клиенте или на сервере?
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895634
izoldov-roskini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где именно они встают в очередь не понятно, видимо на IIS
В отладчике Chrome видно статус Pending и выполняются они поочереди, а я ожидаю одновременно
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895640
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
izoldov-roskini
Где именно они встают в очередь не понятно, видимо на IIS
В отладчике Chrome видно статус Pending и выполняются они поочереди, а я ожидаю одновременно

Почему ты из-за статуса пендинг на клиенте сразу решил, что они на сервере по очереди выполняются?
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895641
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
izoldov-roskini
отладчике Chrome видно статус Pending
Они там одновременно появляются или последовательно?

Смотри логи сервера - как они приходят.
И вообще - информации мало, может быть всё - от настройки максимального количества коннекшенов до блокировок на уровне БД

Сделай просто три пустых метода с Task.Delay() и вызови их одновременно
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895660
izoldov-roskini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat,

Потому что после того как например первый стал в статус 200, потом второй становится в 200, потом третий
Отсюда видно, что выполнение идет по очереди
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895692
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
izoldov-roskini
Потому что после того как например первый стал в статус 200, потом второй становится в 200, потом третий
Отсюда видно, что выполнение идет по очереди
это всего лишь означает, что первый выполняется быстрее, а третий медленнее и ничего не говорит о параллельности или последовательности выполнения на сервере.

Проверь через Task.Delay
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895695
izoldov-roskini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Я поставил точки остановка в каждом из методов
Они срабатывают последовательно
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895713
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
izoldov-roskini
Они срабатывают последовательно
а как они должны срабатывать? одновременно в трёх местах отладчик должен остановиться? Хотя бы в аутпут запиши начало и конец вызова

Shocker.Pro
Сделай просто три пустых метода с Task.Delay() и вызови их одновременно
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895721
izoldov-roskini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
при многопоточном вызове точки останова срабатывают в момент вызова, чего не происходит
точки останова ровно как и отпут срабатывают последовательно
все методы возвращают Task<ActionResult>
на лицо то, что поток пока не завершит обработку одного запроса, не обрабатывает следующий

может есть какие то настройки сервера или самой страницы?
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895739
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
izoldov-roskini
может есть какие то настройки сервера или самой страницы?

Вот упорно не могу понять таких людей - ну зачем спрашивать совета, если ты никого слушать не хочешь. Ты выясни сначала, что проблема действительно есть, а потом ищи "какие то настройки сервера или самой страницы", если она есть.
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895740
izoldov-roskini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat,

если бы проблемы небыло, я бы сюда не писал
всем спасибо, разберусь самостоятельно
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895760
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
izoldov-roskini
fkthat,

если бы проблемы небыло, я бы сюда не писал
всем спасибо, разберусь самостоятельно


непонятно при чём тут asp.net
последовательно вызовы идут с клиента
а вы пытаетесь найти проблему на серваке
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895847
izoldov-roskini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот код на странице:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<script>
    $(document).ready(function () {
        $("#section1").load("/Test/Section1");
        $("#section2").load("/Test/Section2");
        $("#section3").load("/Test/Section3");
    });
</script>

<div id="section1" style="width:100px; height:100px; background-color: red;">

</div>

<div id="section2" style="width:100px; height:100px; background-color: green;">

</div>

<div id="section3" style="width:100px; height:100px; background-color: yellow;">

</div>



вот код контроллера
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
public class TestController : Controller
    {
        // GET: Test
        public ActionResult Index()
        {
            return View();
        }

        public async Task<ActionResult> Section1()
        {
            await Task.Factory.StartNew(()=> {
                Thread.Sleep(3000);
            });
          
            return new ContentResult() { Content = "Section1" };
        }

        public async Task<ActionResult> Section2()
        {
            await Task.Factory.StartNew(() => {
                Thread.Sleep(3000);
            });
            return new ContentResult() { Content = "Section2" };
        }

        public async Task<ActionResult> Section3()
        {
            await Task.Factory.StartNew(() => {
                Thread.Sleep(3000);
            });
            return new ContentResult() { Content = "Section3" };
        }
    }



Ожидаю что надписи в соотв. блоках появятся +/- одновременно
НО, в итоге последняя надпись появляется через 9 секунд

Отсюда вывод, методы вызываются последовательно а не одновременно, как еще пояснить?
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895851
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
izoldov-roskini
Код: html
1.
2.
3.
        $("#section1").load("/Test/Section1");
        $("#section2").load("/Test/Section2");
        $("#section3").load("/Test/Section3");

это асинхронный вызов?
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895857
izoldov-roskini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

это Ajax, по умолчанию асинхронный
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895880
izoldov-roskini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Суть задачи сделать так, чтобы все 3 функции отработали одновременно
и надписи в элементах появились +/- одновременно
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895899
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
izoldov-roskini
Shocker.Pro,

это Ajax, по умолчанию асинхронный


Асинхронный и параллельный -- разные вещи.
Вы похоже не понимаете разницы.
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895901
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895942
izoldov-roskini
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Согласен, параллельно
Исходя из написанного в посте решения я не вижу, в любом случае все выполняется по порядку
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39895988
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
izoldov-roskini,

сессии используете?
может вы какой-то базовый пример сделаете и сюда выложите?
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39896059
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
izoldov-roskini
Они срабатывают последовательно
а как они должны срабатывать?
При пошаговой отладке должна быть такая картина: срабатывает брейкпоинт, делаем шаг. В этот момент снова должен сработать тот же брейкпоинт. Делаем еще шаг - снова он. Делаем четвертый шаг - первый поток переместился на следующую строку. Еще - второй, еще - третий. Если параллельности нет, то сначала первый вызов пройдет весь цикл обработки, потом второй, потом третий. Если есть какие-нибудь лаги, то брейкпоинт для следующего потока может сработать через 2-3 шага после предыдущего.
...
Рейтинг: 0 / 0
Многопоточный вызов функций
    #39896068
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
izoldov-roskini
Shocker.Pro,

это Ajax, по умолчанию асинхронный


Асинхронный и параллельный -- разные вещи.
Вы похоже не понимаете разницы.
Разные, но связанные. Асинхронность на клиенте позволяет использовать многопоточность сервера. Клиент может отправить одновременно несколько запросов на сервер, который будет обрабатывать их параллельно, но это, само собой, не значит, что и клиент отправляет и обрабатывает ответы параллельно. Отправит он их в порядке, определенном разработчиком, а примет в порядке, определенном сервером - какой быстрее им обработается, тот и раньше вернется.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Многопоточный вызов функций
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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