Size: a a a

BY Microsoft .NET User Group

2019 September 10

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
Dmitry Protko
В итоге wait будет на уровне выше просто
Почему?
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
В идеале надо чтоб его не было вообще
источник

IL

Igor Lukashenya in BY Microsoft .NET User Group
Dmitry Protko
В итоге wait будет на уровне выше просто
юзай async/await
источник

IL

Igor Lukashenya in BY Microsoft .NET User Group
Dmitry Protko
В итоге wait будет на уровне выше просто
без wait
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
Dmitry Protko
Подскажите пожалуйста, чем плох такой алгоритм?
var offeringsTask = new Task<Dictionary<int, string>>(GetOfferings);
var providersTask = new Task<Dictionary<int, string>>(GetProviders);
offeringsTask.Start();
providersTask.Start();
Task.WaitAll(offeringsTask, providersTask);
var fullMetadata = new FeedbackFullMetadata
{
Offerings = offeringsTask.Result,
Providers = providersTask.Result,
};
Кстати, имхо, если уж говорить об эффективности и принять как данность, что этот кусок кода должен выполняться синхронно (то есть убедить себя, что мы не боимся .Result), то я бы сделал так:
var offeringsTask = new Task<Dictionary<int, string>>(GetOfferings);
var providers = GetProviders();
var fullMetadata = new FeedbackFullMetadata
{
Offerings = offeringsTask.Result,
Providers = providers,
};
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
Тасок уже не две и не три, а всего одна. Параллельность же при этом сохранена.
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
А, кстати
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
.Result — это же хунта чаще всего
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
Лучше вместо этого .GetAwaiter().GetResult()
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
Он исключения анврапнет
источник

DP

Dmitry Protko in BY Microsoft .NET User Group
Такой вариант должен быть лучше, верно?
источник

IL

Igor Lukashenya in BY Microsoft .NET User Group
так в чем проблема сделать getOfferings так же как и остальные
источник

IL

Igor Lukashenya in BY Microsoft .NET User Group
и без резалтов
источник

DP

Dmitry Protko in BY Microsoft .NET User Group
Igor Lukashenya
так в чем проблема сделать getOfferings так же как и остальные
его нельзя
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
Dmitry Protko
Такой вариант должен быть лучше, верно?
Считаю, что в асинхронном коде мой трюк с GetProviders() не нужен.
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
То есть лучше уж тогда таски везде использовать.
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
А, сорян, не посмотрел сигнатуру
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
Да, считаю, что этот код ок.
источник

DP

Dmitry Protko in BY Microsoft .NET User Group
Dr. Friedrich von Never
Да, считаю, что этот код ок.
А по факту стало медленнее на 100 мс 😁
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
Dmitry Protko
А по факту стало медленнее на 100 мс 😁
Медленнее, чем что?
источник