Size: a a a

BY Microsoft .NET User Group

2019 September 10

VS

Vladimir Shchur in BY Microsoft .NET User Group
но да, лучше юзать WhenAll а не WaitAll
источник

DP

Dmitry Protko in BY Microsoft .NET User Group
Vladimir Shchur
но да, лучше юзать WhenAll а не WaitAll
В чем разница у Task.WhenAll(tasks).Wait() и  Task.WaitAll(tasks)?
источник

VS

Vladimir Shchur in BY Microsoft .NET User Group
тем что WhenAll не обязательно делать Wait() =)
источник

MS

Maxim Sergienya in BY Microsoft .NET User Group
Ой точно, сразу не заметил, что у него WaitAll. Тогда да, переделать в Task.Run или даже Task.FromResult, сделать WhenAll и собрать в нужный объект
источник

DP

Dmitry Protko in BY Microsoft .NET User Group
Maxim Sergienya
Ой точно, сразу не заметил, что у него WaitAll. Тогда да, переделать в Task.Run или даже Task.FromResult, сделать WhenAll и собрать в нужный объект
Task.Run же тоже самое в итоге сделает. Запустит таск и вернет его объект
источник

VS

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

DP

Dmitry Protko in BY Microsoft .NET User Group
Vladimir Shchur
в общем, проблема что ты блочишь треды, если это новое приложение, то это не оправдано никак, даже консольки поддерживают асинки
Так если консоль все равно не используется пока таски не закончатся какой в этом смысл?
источник

VS

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

VS

Vladimir Shchur in BY Microsoft .NET User Group
ну и кстати task.Start() тоже такое себе - . For the more common case in which you don't need to separate task instantiation from execution, we recommend that you call an overload of the Task.Run
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
Vladimir Shchur
ну и кстати task.Start() тоже такое себе - . For the more common case in which you don't need to separate task instantiation from execution, we recommend that you call an overload of the Task.Run
А кто-нибудь помнит разницу между new Task().Start и Task.Run?
источник

VS

Vladimir Shchur in BY Microsoft .NET User Group
там какие-то параметры передаются)
источник

DP

Dmitry Protko in BY Microsoft .NET User Group
такой вариант чем-то луче? тут же лишний таск получается создается
var offeringsTask = Task.Run(GetOfferings);
var providersTask = Task.Run(GetProviders);
var loadDataTask = Task.WhenAll(offeringsTask, providersTask);
loadDataTask.Wait();
var fullMetadata = new FeedbackFullMetadata
{
Offerings = offeringsTask.Result,
Providers = providersTask.Result,
};
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
Там вроде было чота хитрое с шедулером, но я не помню уже :(
источник

VS

Vladimir Shchur in BY Microsoft .NET User Group
Vladimir Shchur
там какие-то параметры передаются)
CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
Dmitry Protko
такой вариант чем-то луче? тут же лишний таск получается создается
var offeringsTask = Task.Run(GetOfferings);
var providersTask = Task.Run(GetProviders);
var loadDataTask = Task.WhenAll(offeringsTask, providersTask);
loadDataTask.Wait();
var fullMetadata = new FeedbackFullMetadata
{
Offerings = offeringsTask.Result,
Providers = providersTask.Result,
};
А можна как-то без .Wait?
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
Vladimir Shchur
CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default
Во, точно, DenyChildAttach
источник

VS

Vladimir Shchur in BY Microsoft .NET User Group
Dmitry Protko
такой вариант чем-то луче? тут же лишний таск получается создается
var offeringsTask = Task.Run(GetOfferings);
var providersTask = Task.Run(GetProviders);
var loadDataTask = Task.WhenAll(offeringsTask, providersTask);
loadDataTask.Wait();
var fullMetadata = new FeedbackFullMetadata
{
Offerings = offeringsTask.Result,
Providers = providersTask.Result,
};
если ты очень хочешь делать wait() то можно и Task.WaitAll =)
источник

DP

Dmitry Protko in BY Microsoft .NET User Group
Vladimir Shchur
если ты очень хочешь делать wait() то можно и Task.WaitAll =)
А как же его не делать?)
источник

Dv

Dr. Friedrich von Never in BY Microsoft .NET User Group
Dmitry Protko
А как же его не делать?)
Ну await
источник

DP

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