gpt4 book ai didi

c# - 如何在 F# 中编写此异步 IO C# 代码?

转载 作者:行者123 更新时间:2023-11-30 16:07:01 25 4
gpt4 key购买 nike

我有这个代码:

public async Task CreateFileAsync(string filePath, byte[] bytes)
{
using (var sourceStream = System.IO.File.Open(filePath, FileMode.OpenOrCreate))
{
sourceStream.Seek(0, SeekOrigin.End);
await sourceStream.WriteAsync(bytes, 0, bytes.Length).ConfigureAwait(false);
}
}

我想在 F# 上编写它,在我不知道该怎么做之前,我已经走到这一步了:

module myModule
open System.IO;
let CreateFileAsync (filePath: string, bytes : byte[]) =
use sourceStream = File.Open(filePath, FileMode.OpenOrCreate)
|> sourceStream.Seek(0, SeekOrigin.End);

我四处搜索,但这里有几个概念,我无法将它们放在一起。

最佳答案

您可以使用 async { .. } 工作流:

let createFileAsync (filePath, bytes) = async {
use sourceStream = System.IO.File.Open(filePath, FileMode.OpenOrCreate)
sourceStream.Seek(0, SeekOrigin.End)
do! sourceStream.AsyncWrite(bytes, 0, bytes.Length) }

这是相当命令式的代码,因此它在 F# 中看起来并没有太大不同。

关于c# - 如何在 F# 中编写此异步 IO C# 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31329681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com