【发布时间】:2022-01-06 16:46:49
【问题描述】:
F# 6 introduced 支持 .NET 任务。
这个 sn-p 随处共享 - 但是调用和使用任务结果的正确方法是什么(例如 printf 它)?
let readFilesTask (path1, path2) =
task {
let! bytes1 = File.ReadAllBytesAsync(path1)
let! bytes2 = File.ReadAllBytesAsync(path2)
return Array.append bytes1 bytes2
}
一个可行的选择是:
let result = readFilesTask ("filaA", "fileB")
printf $"%A{result.Result}"
但这是预期的使用方式吗?
【问题讨论】:
-
在大多数情况下,您将使用期望通过
Task<'T>传递的库或框架,您只需与它进行互操作。这是主要的用例,并且 async 总是让人觉得使用起来有点烦人。 -
是的,我很清楚。我的问题是关于稍后如何访问
Task<'T>的结果。
标签: f#