Re[18]: Java/Kotlin .NET/C# GO
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 16.07.23 21:28
Оценка:
Здравствуйте, novitk, Вы писали:

S>> Покажи работу с TaskCompletionSource и CancellationToken.

N>TaskCompletionSource? Судя по описанию назыывается вроде чуть менее чем везде Promise.
N>Как делать cancellation в языке с зелеными потоками? Например так.
Суть того, что задачи никак не связаны с асинхронные операции ввода-вывода. Порт завершения ввода / вывода (IOCP)
TaskCompletionSource это создание задачи и ручное получение результата через SetResult
https://learn.microsoft.com/ru-ru/dotnet/api/system.threading.tasks.taskcompletionsource-1?view=net-7.0
Ты почитай ссылки, что я даю. Я трачу время и они полезны
Использование асинхронного шаблона, основанного на задачах

S>>Можно вызавть await для массива задач (WhenAll, WhenAny ), можно вызвать ContinueWith итд. То есть больше механизмов использования.

N>Ты разговариваешь с человеком, который знаком с первоисточником всей так возбуждающей тебя красоты, которую МS тащит в C# — монадами, хаскeлем, библиотеками эффектов, FRP и т.д.
Я изучал монады, хаскели и прочее. И то что сделано в F# и C# меня возбуждает больше.
Я просто указал на разницу между потоками (пусть и зелеными) и задачами на пулах потоков. Только при чем тут "монадами, хаскeлем, библиотеками эффектов, FRP и т.д."
Вообще в основе своей той же стейт машины стоит yield, то есть генерация класса с замыканием переменных для хранения состояния и изменение через MoveNext.
Оно прекрасно себя зарекомендовало в Linq и было перенесено на async/await

Кстати в свое время делали энумераторы делали на файберах, аналог зеленых потоков. Но MS предложили через yield и дало огромный толчок для использования функциональщины в C#
и солнце б утром не вставало, когда бы не было меня
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.