powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Выборка из базы данных в несколько потоков
25 сообщений из 129, страница 5 из 6
Выборка из базы данных в несколько потоков
    #38083805
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa.

Кстати, задача стояла "запустить односременно N асинхронных операций и подписаться на результат их выполнения". Как ты это собрался делать через async/await я не увидел.
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38083809
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кbeg-in-erа почему FooAfter==10 ??? может быть всё таки разные потоки?МСУэто и говорит о том, что асинхронный await выполнился в другом потоке Неожиданно.

А если бы это было WinForms/WPF приложение, поток был бы тот же. Но не повезло.

В асп.нет этот кодд вообще вешает приложение :)

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public partial class _Default : Page
{
    protected void Button1_Click(object sender, EventArgs e)
    {
        HttpContext.Current.Response.Write(Thread.CurrentThread.ManagedThreadId);
        FooAsync().Wait();
    }

    async static Task FooAsync()
    {
        await Task.Delay(1000);
        HttpContext.Current.Response.Write(Thread.CurrentThread.ManagedThreadId);
    }
}



асн.нет априори асинхронен.
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38083813
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, застолбил тему тут: http://codearticles.ru/Home/ArticleView/2135

P.S. Сева, убей себя об эту статью. До тех пор, пока не покажешь мне код с асинком, в котором будут все Thread.CurrentThread.ManagedThreadId одинаковы, ты - тупая обезьяна с наклонностями унылой кухарки. Ну или просто - мрачный феерический талпайоп.
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38083818
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rx походу идёт в золотую корзину. Кому он теперь нужен, если поддержка Task вставлена аж в сам язык. Никого не хотел обидеть, просто мыли вслух...
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38083830
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВ асп.нет этот кодд вообще вешает приложение :)

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public partial class _Default : Page
{
    protected void Button1_Click(object sender, EventArgs e)
    {
        HttpContext.Current.Response.Write(Thread.CurrentThread.ManagedThreadId);
        FooAsync().Wait();
    }

    async static Task FooAsync()
    {
        await Task.Delay(1000);
        HttpContext.Current.Response.Write(Thread.CurrentThread.ManagedThreadId);
    }
}

+1

Про Asp.Net не скажу, но в WPF/WinForms вроде как будет мёртвая блокировка.
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38083837
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПро Asp.Net не скажу, но в WPF/WinForms вроде как будет мёртвая блокировка.
Ага, точно - тоже проверил на не тру технологиях :) такая же картина.
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38083891
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУКороче, застолбил тему тут: http://codearticles.ru/Home/ArticleView/2135

P.S. Сева, убей себя об эту статью. До тех пор, пока не покажешь мне код с асинком, в котором будут все Thread.CurrentThread.ManagedThreadId одинаковы, ты - тупая обезьяна с наклонностями унылой кухарки. Ну или просто - мрачный феерический талпайоп.

Неугомонное чмо, те6е мало пачканья мозгов народу здесь, так ты еще говносайт завел.
О чем может сказать такой дебил как ты?
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38083935
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaМСУКороче, застолбил тему тут: http://codearticles.ru/Home/ArticleView/2135

P.S. Сева, убей себя об эту статью. До тех пор, пока не покажешь мне код с асинком, в котором будут все Thread.CurrentThread.ManagedThreadId одинаковы, ты - тупая обезьяна с наклонностями унылой кухарки. Ну или просто - мрачный феерический талпайоп.

Неугомонное чмо, те6е мало пачканья мозгов народу здесь, так ты еще говносайт завел.
О чем может сказать такой дебил как ты?

Убогая проститутка, тебе не понравилось, как тебя сегодня опустили за "отличные знания" по работе с потоками? Обтекай, дурында.
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38084071
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КRx походу идёт в золотую корзину. Кому он теперь нужен, если поддержка Task вставлена аж в сам язык. Никого не хотел обидеть, просто мыли вслух...


Никуда он не идет, в Rx 2.0 добавлена поддержка async\await и на клиенте - это лучший вариант.

Eric LippertAsync/await" is not a replacement for Rx any more than LINQ was a replacement for SQL. You can use LINQ to talk to a SQL back end; you can use task-based asynchrony with Rx to orchestrate work triggered by streams of events. These technologies should enhance each other, not compete.

Из вакансии MS

Familiarity with functional programming concepts and Reactive Extensions (Rx) is a strong bonus.


Новая модель для серверной части. Сейчас делаю нагрузочное тестирование, результаты радуют. Скалируется до 250 виртуальных пользователей(больше нет в моей лицензии) без всяких тормозов
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38084077
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КSeVa.

Кстати, задача стояла "запустить односременно N асинхронных операций и подписаться на результат их выполнения". Как ты это собрался делать через async/await я не увидел.

Как я уже сказал, эта история для сервисов, просто возращаем Task<..> без всяких wait и все.
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38084098
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaАлексей КSeVa.

Кстати, задача стояла "запустить одновременно N асинхронных операций и подписаться на результат их выполнения". Как ты это собрался делать через async/await я не увидел.

Как я уже сказал, эта история для сервисов, просто возращаем Task<..> без всяких wait и все.Ну вот и я о чём. :-)
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38084103
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КSeVaпропущено...
Как я уже сказал, эта история для сервисов, просто возращаем Task<..> без всяких wait и все.Ну вот и я о чём. :-)
Это жесть...
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38084113
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaНовая модель для серверной части. Сейчас делаю нагрузочное тестирование, результаты радуют. Скалируется до 250 виртуальных пользователей(больше нет в моей лицензии) без всяких тормозовВ 4-м этого тоже можно добиться. Может не так удобно, но можно.
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38085372
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бл. Не знаю с чего начать.
это имхо, имхо может быть ошибочным..
Весь срач возник по поводу что стоит за await, ну естественно что там по всей логике должен стоять таск с вытекающим фоновым, но что это за поток, это возможная и как правило реализация единицы задачи.
но можно же взять написать свой класс задачи, без тасков, с реализаций структурыTaskAwaiter , и выкидывания метода наружу GetAwaiter, ибо наличие этого метода определяет может ли это стоять за await.
Ну естественно за "стек" этой задачи никуда не упорхнуть тем более и дальше, и эта реализация как пятое колесо телеге
ну это моё имхо а не утверждение
Но сама концепция этой технологии не определяет что задача должна выполняться
в фоновом потоке, а говорит что просто задача.( может что еще придумают), как бы абстракция. В конце концов можно в обыкновенном таске закинуть через SynchronizationContext делегат и он встанет в очередь на исполнение в основном потоке, но тут фишка - что если он зависнет то весь основной накроется медным тазом,синхо
Весь сахар состоит в await, в этом месте создается объект за мониторингом задачи, что стоит за await и делегатом куда пойдем если задача исполнится, делегат на код продолжения метода почему делегат чуть позже, после этого код гуляет дальше.
как реализована эта фишка - машина слежения, служебные потоки могут быть - их не отрицают создатели, так как это шаманство реализовано через функцию с пометкой async, может сложиться ощущение что все эти прелести создаются на стеке этой функции.
Но вроде как нет, при выходе из async F,код может гулять дальше, а объект слежение будет следить за задачей, и в один прекрасный момент он исполниться. С возможностью подарить нам замыкание. все это очень созвучно с запуском begininvoke, код идет дальше, а за слежением endinvoke - создаем отдельный поток.
Но если таких задач куча нам придется создавать кучу потоков, хранить где то результаты если результат одной задачи является элементом другой задачи.., следить за контекстами..
Тут и уместна эта технология, все слежение организовано единой машиной и если есть переплетений задач компилятор самследит за очередностью, и даже создает в машине внутренние переменные для выполнения этой цепочки задач, более точнее сказать, создает обертки - типы этих переменных и указатели на их объекты в куче включает в машину слежения, равно и для переменных объявленных в функции.
Но по истине шаманство заключается вот в чем.
только компилятор встречает в коде await он создает машину слежения, запихивает туда надзиратель за объектом await и все барахло из стека переносит в эту машину в виде делегата продолжения кода функции для продолжения в потоке вызова, и передает управление этой машине, по существу код продолжается за счет машины слежения.
Стек метода async уже нам не нужен, и код пошел дальше за счет машины,
Предположим что метод async -void, код дальше может переходить в стек новой функции, а машина слежения трансформироваться в таск и запускаться в служебном потоке, и продолжает следить за не выполненными в прошлом задачами.( если они действительно не выполнены),
Так как машина слежения это структура и структура аки стек исполнения кода( образно), тут как бы уместны рекомендации, о которых кричат создатели , содержать эту структуру в чистоте, в плане не лепить г..а в виде переменных на объекты в куче в коде функции, ибо при переносе это г..о, ляжет в структуру в виде указателей на объекты и как бы она для уборки становится замороченной по сравнению со стеком функции.
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38085414
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ниасилил...
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38085422
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
дак интересно же, что там в кишках,
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38085426
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиМСУ,
дак интересно же, что там в кишках,
Не спорю, но излагаешь ты опасно :)
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38085448
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
ну не опасно, же имхо, а то что резко, так как бы оживит повествование,
зы
Вот все у вас как на параде, - салфетку - туда, галстук - сюда, да "извините", да "пожалуйста-мерси", а так, чтобы по-настоящему (с)
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38085452
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиа так, чтобы по-настоящему (с)
Ну почему же, иногда и какашками кидаемся. Вон, вчера Севу чмыранули по-полной программе, сейчас сидит в кустах, раны зализывает
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38085469
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУГде-то в степиМСУ,
дак интересно же, что там в кишках,
Не спорю, но излагаешь ты опасно :)
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38085470
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
Ну у вас с Севой, это не отнять, это воспринимается уже как должное, хотя прок для тех кто следит за перепалкой абсолютно есть
не знаю я воспринимаю это уже спокойно,новичкам наверное дико, мне даже кажется в реале вы бы были неразлучными друзьями.
на полном сер..
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38085489
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степив реале вы бы были неразлучными друзьями.
на полном сер..

+1
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38085496
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
к стати про кишки, у меня есть друг прозектор , так вот с ним произошла презабавная история,
приходят родственники забирать тело горячо любимой бабушки, и застают такую картину, мой друг пыхтит выдирает
золотой мост у бабушки пассатижами, и не глядя на них орет, х.. че надо.., дочка бабули - хоп.. не насовсем..
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38085659
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУГде-то в степиМСУ,
дак интересно же, что там в кишках,
Не спорю, но излагаешь ты опасно :)
...
Рейтинг: 0 / 0
Выборка из базы данных в несколько потоков
    #38085677
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиТут всё похоже на разворот циклов в конечный автомат в yield return . Если мне не показалось, прошлая реализация "этого" была через обёртывания следующего за await кода в Task.ContinueWith. Видимо не понравилось. Решили добавить ещё одну абстракцию, позволяющую обобщить Task, IObservable и прочие "асинхронности". И сделали через автомат, видимо решили сэкономить на количестве обращений к пулу потоков. А через что будет "продолжение" - зависит от наличия у "первого потока" контекста синхронизации. Если есть - всё пойдёт через него. Если нет - через пул потоков.
...
Рейтинг: 0 / 0
25 сообщений из 129, страница 5 из 6
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Выборка из базы данных в несколько потоков
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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