Size: a a a

BY Microsoft .NET User Group

2019 September 12

O

Oleg in BY Microsoft .NET User Group
😂
источник

A

Anatoly in BY Microsoft .NET User Group
источник

A

Aliaksandr in BY Microsoft .NET User Group
https://blog.stephencleary.com/2017/03/aspnetcore-synchronization-context.html


В конце статьи небольшое объяснение про implicit parallelism
источник

VS

Vladimir Shchur in BY Microsoft .NET User Group
Oleg
stopwatchером померял
по логике так как Анатолий написал должно быть быстрее, если там сразу идет вызов в базу (или сервис), т.к. нет нужды доставать дополнительный поток из пула и свитчить контексты
источник

O

Oleg in BY Microsoft .NET User Group
Спасибо посмотрю статью
источник

AS

Alexander Shabunevich in BY Microsoft .NET User Group
Vladimir Shchur
по логике так как Анатолий написал должно быть быстрее, если там сразу идет вызов в базу (или сервис), т.к. нет нужды доставать дополнительный поток из пула и свитчить контексты
не совсем понятно, это в случаях, когда запрос в бд/сервис выполняется почти моментально? Почему два последовательных вызова будут быстрее, чем два параллельных?
источник

VS

Vladimir Shchur in BY Microsoft .NET User Group
там последовательно выполнится два вызова в базу, а ответа будут ожидать параллельно
источник

AS

Alexander Shabunevich in BY Microsoft .NET User Group
аа, ну то, что там не нужен Task.Run и так понятно. Но далее по тексту же уточнили, что изначально стоит задача выполнить два запроса параллельно. Пример же Анатолия - три последовательных вызова. Вот я и спрашиваю, почему бытрее?
источник

VS

Vladimir Shchur in BY Microsoft .NET User Group
у него два первых параллельно идут)
источник

VS

Vladimir Shchur in BY Microsoft .NET User Group
я имел ввиду их, третий не учитывал
источник

AS

Alexander Shabunevich in BY Microsoft .NET User Group
var task = f();
var b = await g();
var a = await task;
var c = await h();

вызовы во 2 и 3 строках идут параллельно?
источник

AT

Alexey Tkachenko in BY Microsoft .NET User Group
Alexander Shabunevich
var task = f();
var b = await g();
var a = await task;
var c = await h();

вызовы во 2 и 3 строках идут параллельно?
Зависит от шедулера, но могут идти и параллельно
источник

AS

Alexander Shabunevich in BY Microsoft .NET User Group
:O буду признателен, если тыкнут, где эта возможность описана
источник

AT

Alexey Tkachenko in BY Microsoft .NET User Group
Л - логика
источник

AT

Alexey Tkachenko in BY Microsoft .NET User Group
await ожидает на объекте результата, а не процесс
источник

AT

Alexey Tkachenko in BY Microsoft .NET User Group
Псевдокод:

thread t1 = thread_start(something);
thread t2 = thread_start(something_else);

t1.join();
t2.join();


потоки выполняются параллельно или последовательно?
источник

AS

Alexander Shabunevich in BY Microsoft .NET User Group
параллельно
источник

AT

Alexey Tkachenko in BY Microsoft .NET User Group
вывод?
источник

DP

Dmitry Protko in BY Microsoft .NET User Group
Так вроде получше будет, но это неточно  
var task1 = Test.Method1Async();
var task2 = Test.Method2Async();
await Task.WhenAll(task1, task2 );
await Test.Method3Async(task1.Result, task2.Result);
источник

AS

Alexander Shabunevich in BY Microsoft .NET User Group
разница в том, что таска в первой строке не начнет выполнение, не вижу связи. Т.е. она будет в статусе Created, если я конечно ничего не путаю
источник