---
title: F# AsyncとTask
tags:  #fsharp  
author: [Tsumiki](https://convert.docswell.com/user/tsu-miki)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/9E21QZNDJR.jpg?width=480
description: F#のAsyncとTaskの違いについて話したLT
published: December 23, 25
canonical: https://convert.docswell.com/s/tsu-miki/5M6EQJ-fsharp-async-task
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/9E21QZNDJR.jpg)

AsyncとTask


# Page. 2

![Page Image](https://bcdn.docswell.com/page/D7YZWRPMJM.jpg)

伸びしろコード
●
EdinetCodeに基づいて、企業情報を取得
○ EdinetCode：EDINETにおける法人や個人に付番される一意のコード


# Page. 3

![Page Image](https://bcdn.docswell.com/page/VEN39D53E8.jpg)



# Page. 4

![Page Image](https://bcdn.docswell.com/page/Y7992GYP73.jpg)

F#の非同期プログラミング


# Page. 5

![Page Image](https://bcdn.docswell.com/page/G7895V6XJD.jpg)

違い
項目
.NET Task
F# Async
評価
即時評価
遅延評価
互換性
.NET 全体
F#
型
Task&lt;’T&gt;またはTask
Async&lt;’T&gt;
●
●
Taskは、タスクが作成された瞬間に 即時評価 され、スレッドプールに登録される
Asyncは、実行関数 (StartAsTask,RunSynchronously等) が呼び出されるまで 遅延評価 される


# Page. 6

![Page Image](https://bcdn.docswell.com/page/L7LWY59NER.jpg)

.NET / C#
.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 のパフォーマンス改善。


# Page. 7

![Page Image](https://bcdn.docswell.com/page/4EM9N3ZQ7W.jpg)

F#
F# 1.0
2005年
非同期計算式 (async { }) の導入
# 独自の Async&lt;&#039;T&gt; 型が登場。関数型スタイルの非同期処理が可能に。
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&lt;&#039;T&gt; のサポート向上、 task 計算式の最適化。


