Upgrade to Pro — share decks privately, control downloads, hide ads and more …

F# AsyncとTask

Avatar for tsumiki tsumiki
November 08, 2025

F# AsyncとTask

F#のAsyncとTaskの違いについて話したLT

Avatar for tsumiki

tsumiki

November 08, 2025
Tweet

More Decks by tsumiki

Other Decks in Programming

Transcript

  1. 項目 .NET Task F# Async 評価 即時評価 遅延評価 互換性 .NET

    全体 F# 型 Task<’T>またはTask Async<’T> • Taskは、タスクが作成された瞬間に 即時評価 され、スレッドプールに登録される • Asyncは、実行関数 (StartAsTask,RunSynchronously等) が呼び出されるまで 遅延評価 される 違い
  2. .NET Framework 1.0 2002年 ThreadPool の導入 .NET Framework 4.0 2010年

    Task Parallel Library (TPL) の導入 Task 型が初登場。非同期処理が簡素化される。 C# 5.0 .NET Framework 4.5 2012年 async/await 構文の追加 非同期メソッドの可読性向上、エラーハンドリング改善。 .NET Core 2.1 2018年 ValueTask 型の導入 オーバーヘッド削減、短時間の非同期処理が効率化。 .NET Core 3.0 2019年 IAsyncEnumerable の導入 await foreach で非同期ストリーミングが可能に。 .NET 5 / .NET 6 2020/21年 非同期処理の最適化 Task のパフォーマンス改善。 .NET / C#
  3. F# 1.0 2005年 非同期計算式 (async { }) の導入 # 独自の

    Async<'T> 型が登場。関数型スタイルの非同期処理が可能に。 F# 2.0 2010年 非同期メソッドの追加 Async.Start,Async.RunSynchronouslyで同期・非同期の実行が簡単に。 F# 3.0 2012年 Task との統合 Async.AwaitTask, Async.StartAsTaskが導入。 C# の async/await と相互運用が強化。 F# 4.5 2018年 ValueTask サポート ValueTask 型の導入でオーバーヘッド削減。 F# 8/9 2023年 非同期ストリーミング強化 IAsyncEnumerable<'T> のサポート向上、task 計算式の最適化。 F#