|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVa. Кстати, задача стояла "запустить односременно N асинхронных операций и подписаться на результат их выполнения". Как ты это собрался делать через async/await я не увидел. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:31 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей Кbeg-in-erа почему FooAfter==10 ??? может быть всё таки разные потоки?МСУэто и говорит о том, что асинхронный await выполнился в другом потоке Неожиданно. А если бы это было WinForms/WPF приложение, поток был бы тот же. Но не повезло. В асп.нет этот кодд вообще вешает приложение :) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
асн.нет априори асинхронен. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:34 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Короче, застолбил тему тут: http://codearticles.ru/Home/ArticleView/2135 P.S. Сева, убей себя об эту статью. До тех пор, пока не покажешь мне код с асинком, в котором будут все Thread.CurrentThread.ManagedThreadId одинаковы, ты - тупая обезьяна с наклонностями унылой кухарки. Ну или просто - мрачный феерический талпайоп. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:36 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Rx походу идёт в золотую корзину. Кому он теперь нужен, если поддержка Task вставлена аж в сам язык. Никого не хотел обидеть, просто мыли вслух... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:38 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУВ асп.нет этот кодд вообще вешает приложение :) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
+1 Про Asp.Net не скажу, но в WPF/WinForms вроде как будет мёртвая блокировка. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:41 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КПро Asp.Net не скажу, но в WPF/WinForms вроде как будет мёртвая блокировка. Ага, точно - тоже проверил на не тру технологиях :) такая же картина. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:45 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУКороче, застолбил тему тут: http://codearticles.ru/Home/ArticleView/2135 P.S. Сева, убей себя об эту статью. До тех пор, пока не покажешь мне код с асинком, в котором будут все Thread.CurrentThread.ManagedThreadId одинаковы, ты - тупая обезьяна с наклонностями унылой кухарки. Ну или просто - мрачный феерический талпайоп. Неугомонное чмо, те6е мало пачканья мозгов народу здесь, так ты еще говносайт завел. О чем может сказать такой дебил как ты? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 17:11 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaМСУКороче, застолбил тему тут: http://codearticles.ru/Home/ArticleView/2135 P.S. Сева, убей себя об эту статью. До тех пор, пока не покажешь мне код с асинком, в котором будут все Thread.CurrentThread.ManagedThreadId одинаковы, ты - тупая обезьяна с наклонностями унылой кухарки. Ну или просто - мрачный феерический талпайоп. Неугомонное чмо, те6е мало пачканья мозгов народу здесь, так ты еще говносайт завел. О чем может сказать такой дебил как ты? Убогая проститутка, тебе не понравилось, как тебя сегодня опустили за "отличные знания" по работе с потоками? Обтекай, дурында. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 17:41 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей К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 виртуальных пользователей(больше нет в моей лицензии) без всяких тормозов ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 18:56 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КSeVa. Кстати, задача стояла "запустить односременно N асинхронных операций и подписаться на результат их выполнения". Как ты это собрался делать через async/await я не увидел. Как я уже сказал, эта история для сервисов, просто возращаем Task<..> без всяких wait и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 18:58 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaАлексей КSeVa. Кстати, задача стояла "запустить одновременно N асинхронных операций и подписаться на результат их выполнения". Как ты это собрался делать через async/await я не увидел. Как я уже сказал, эта история для сервисов, просто возращаем Task<..> без всяких wait и все.Ну вот и я о чём. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 19:23 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КSeVaпропущено... Как я уже сказал, эта история для сервисов, просто возращаем Task<..> без всяких wait и все.Ну вот и я о чём. :-) Это жесть... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 19:26 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaНовая модель для серверной части. Сейчас делаю нагрузочное тестирование, результаты радуют. Скалируется до 250 виртуальных пользователей(больше нет в моей лицензии) без всяких тормозовВ 4-м этого тоже можно добиться. Может не так удобно, но можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 19:35 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Бл. Не знаю с чего начать. это имхо, имхо может быть ошибочным.. Весь срач возник по поводу что стоит за await, ну естественно что там по всей логике должен стоять таск с вытекающим фоновым, но что это за поток, это возможная и как правило реализация единицы задачи. но можно же взять написать свой класс задачи, без тасков, с реализаций структурыTaskAwaiter , и выкидывания метода наружу GetAwaiter, ибо наличие этого метода определяет может ли это стоять за await. Ну естественно за "стек" этой задачи никуда не упорхнуть тем более и дальше, и эта реализация как пятое колесо телеге ну это моё имхо а не утверждение Но сама концепция этой технологии не определяет что задача должна выполняться в фоновом потоке, а говорит что просто задача.( может что еще придумают), как бы абстракция. В конце концов можно в обыкновенном таске закинуть через SynchronizationContext делегат и он встанет в очередь на исполнение в основном потоке, но тут фишка - что если он зависнет то весь основной накроется медным тазом,синхо Весь сахар состоит в await, в этом месте создается объект за мониторингом задачи, что стоит за await и делегатом куда пойдем если задача исполнится, делегат на код продолжения метода почему делегат чуть позже, после этого код гуляет дальше. как реализована эта фишка - машина слежения, служебные потоки могут быть - их не отрицают создатели, так как это шаманство реализовано через функцию с пометкой async, может сложиться ощущение что все эти прелести создаются на стеке этой функции. Но вроде как нет, при выходе из async F,код может гулять дальше, а объект слежение будет следить за задачей, и в один прекрасный момент он исполниться. С возможностью подарить нам замыкание. все это очень созвучно с запуском begininvoke, код идет дальше, а за слежением endinvoke - создаем отдельный поток. Но если таких задач куча нам придется создавать кучу потоков, хранить где то результаты если результат одной задачи является элементом другой задачи.., следить за контекстами.. Тут и уместна эта технология, все слежение организовано единой машиной и если есть переплетений задач компилятор самследит за очередностью, и даже создает в машине внутренние переменные для выполнения этой цепочки задач, более точнее сказать, создает обертки - типы этих переменных и указатели на их объекты в куче включает в машину слежения, равно и для переменных объявленных в функции. Но по истине шаманство заключается вот в чем. только компилятор встречает в коде await он создает машину слежения, запихивает туда надзиратель за объектом await и все барахло из стека переносит в эту машину в виде делегата продолжения кода функции для продолжения в потоке вызова, и передает управление этой машине, по существу код продолжается за счет машины слежения. Стек метода async уже нам не нужен, и код пошел дальше за счет машины, Предположим что метод async -void, код дальше может переходить в стек новой функции, а машина слежения трансформироваться в таск и запускаться в служебном потоке, и продолжает следить за не выполненными в прошлом задачами.( если они действительно не выполнены), Так как машина слежения это структура и структура аки стек исполнения кода( образно), тут как бы уместны рекомендации, о которых кричат создатели , содержать эту структуру в чистоте, в плане не лепить г..а в виде переменных на объекты в куче в коде функции, ибо при переносе это г..о, ляжет в структуру в виде указателей на объекты и как бы она для уборки становится замороченной по сравнению со стеком функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 16:20 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Ниасилил... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 16:36 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ, дак интересно же, что там в кишках, ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 16:38 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степиМСУ, дак интересно же, что там в кишках, Не спорю, но излагаешь ты опасно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 16:40 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ, ну не опасно, же имхо, а то что резко, так как бы оживит повествование, зы Вот все у вас как на параде, - салфетку - туда, галстук - сюда, да "извините", да "пожалуйста-мерси", а так, чтобы по-настоящему (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 16:51 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степиа так, чтобы по-настоящему (с) Ну почему же, иногда и какашками кидаемся. Вон, вчера Севу чмыранули по-полной программе, сейчас сидит в кустах, раны зализывает ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 16:52 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУГде-то в степиМСУ, дак интересно же, что там в кишках, Не спорю, но излагаешь ты опасно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 16:59 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ, Ну у вас с Севой, это не отнять, это воспринимается уже как должное, хотя прок для тех кто следит за перепалкой абсолютно есть не знаю я воспринимаю это уже спокойно,новичкам наверное дико, мне даже кажется в реале вы бы были неразлучными друзьями. на полном сер.. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 17:00 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степив реале вы бы были неразлучными друзьями. на полном сер.. +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 17:07 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ, к стати про кишки, у меня есть друг прозектор , так вот с ним произошла презабавная история, приходят родственники забирать тело горячо любимой бабушки, и застают такую картину, мой друг пыхтит выдирает золотой мост у бабушки пассатижами, и не глядя на них орет, х.. че надо.., дочка бабули - хоп.. не насовсем.. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 17:11 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУГде-то в степиМСУ, дак интересно же, что там в кишках, Не спорю, но излагаешь ты опасно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 18:34 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Где-то в степиТут всё похоже на разворот циклов в конечный автомат в yield return . Если мне не показалось, прошлая реализация "этого" была через обёртывания следующего за await кода в Task.ContinueWith. Видимо не понравилось. Решили добавить ещё одну абстракцию, позволяющую обобщить Task, IObservable и прочие "асинхронности". И сделали через автомат, видимо решили сэкономить на количестве обращений к пулу потоков. А через что будет "продолжение" - зависит от наличия у "первого потока" контекста синхронизации. Если есть - всё пойдёт через него. Если нет - через пул потоков. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 18:48 |
|
|
start [/forum/search_topic.php?author=Nix&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 442ms |
total: | 633ms |
0 / 0 |