Как сделать await для любого типа
Статья на Хабре показывает, как реализовать собственный awaitable: определить GetAwaiter(), awaiter с IsCompleted, OnCompleted и GetResult(). В примере DelayAwaitable даёт задержку без Task и ведёт себя как Task.Delay, но для произвольных событий. Как создать собственный await в C# — простая реализация
В статье показано, как реализовать await/awaiter через GetAwaiter(), IsCompleted, OnCompleted и GetResult(). Приведены примеры с таймером и ожиданием события (ManualResetEvent) и объясняется, когда полезно делать свой await вместо Task/ValueTask.
Читать подробнее: https://habr.com/ru/companies/otus/articles/977074/
#ru
@dot_net_c_sharp | Другие наши каналы
Post #4837
1.17K