Информация об изменениях

Сообщение Re[7]: .NET Core, исходники: Task<T> от 13.08.2015 12:21

Изменено 13.08.2015 12:22 Qbit86

Здравствуйте, Sinix, Вы писали:

Q>>Вообще в идеале хотелось бы найти простую и переносимую реализацию Futures/Promises без всего этого многопоточного гудрона.

S>Предположим, вы её нашли. Что вы с ней собираетесь делать, особенно с учётом "без многопоточного гудрона"?:)

Использовать в игре на движке Unity. В геймдеве обычно игровой цикл торчит наружу, поэтому вместо push-модели событий/асинхронности часто удобно применять poll-модель (опрос результата).

S>И с учётом того, что таски — это вообще-то _не_ future/promise?


https://en.wikipedia.org/wiki/Futures_and_promises
«...A future is a read-only placeholder view of a variable, while a promise is a writable, single assignment container which sets the value of the future... In .NET 4.0 System.Threading.Tasks.Task<T> represents a read-only view [future]. Resolving the value can be done through System.Threading.Tasks.TaskCompletionSource<T> [promise].»

S>Это кирпичики, на которых можно построить почти любой async pattern — промайзы, пайплайн, cps, акторы, воркфлоу etc. Но не сами паттерны. Ваш кэп:)


А так да, для фьючерок Task'и сильно перегружены. Не говоря уже о том, что, почему-то, входят в пространство имён Threading, хотя призваны абстрагировать асинхронность от таких примитивов ОС как потоки.
Re[7]: .NET Core, исходники: Task<T>
Здравствуйте, Sinix, Вы писали:

Q>>Вообще в идеале хотелось бы найти простую и переносимую реализацию Futures/Promises без всего этого многопоточного гудрона.

S>Предположим, вы её нашли. Что вы с ней собираетесь делать, особенно с учётом "без многопоточного гудрона"?:)

Использовать в игре на движке Unity. В геймдеве обычно игровой цикл торчит наружу, поэтому вместо push-модели событий/асинхронности часто удобно применять poll-модель (опрос результата, корутины).

S>И с учётом того, что таски — это вообще-то _не_ future/promise?


https://en.wikipedia.org/wiki/Futures_and_promises
«...A future is a read-only placeholder view of a variable, while a promise is a writable, single assignment container which sets the value of the future... In .NET 4.0 System.Threading.Tasks.Task<T> represents a read-only view [future]. Resolving the value can be done through System.Threading.Tasks.TaskCompletionSource<T> [promise].»

S>Это кирпичики, на которых можно построить почти любой async pattern — промайзы, пайплайн, cps, акторы, воркфлоу etc. Но не сами паттерны. Ваш кэп:)


А так да, для фьючерок Task'и сильно перегружены. Не говоря уже о том, что, почему-то, входят в пространство имён Threading, хотя призваны абстрагировать асинхронность от таких примитивов ОС как потоки.