tgoop.com/csharp_gepard/116
Create:
Last Update:
Last Update:
ContinueWith #скорость
Не секрет, что мы можем использовать метод ContinueWith для небольшого увеличения производительности. Давно об этом знал, но всё руки не доходили протестировать. Так вот, докладываю.
Делается это просто - мы можем вызвать наш асинхронный метод, а затем, не используя await
, написать что-то вроде:
MyAsyncMethod(cancellation).ContinueWith(task => DoSomething(task.Result), cancellation);
Это будет несколько быстрее, чем:
var result = await MyAsyncMethod(cancellation);
DoSomething(result);
Отлично применяется с известной многим сущностью
Result<T>
, где, в зависимости от этого результата нужно что-то сделать или не сделать.Напомню, что минусом применения подхода с
ContinueWith
является то, что логи с ошибками становятся немного... плохо читаемыми.P.S.: Бенчмарк в комментариях.
P.P.S: Алексею и Игорю спасибо) Было весело это всё отлаживать.
BY C# Heppard

Share with your friend now:
tgoop.com/csharp_gepard/116