f# - 等待 System.Threading.Task 并忽略结果?

标签 f# async-await dotnet-httpclient

我正在尝试通过直接学习并尝试将一些 C# 代码转换成它来学习 F#。我正在重写的其中一件事是异步方法的一部分,它等待调用 HttpClient 的 GetAsync 而不使用结果。即:

await httpClient.GetAsync("http://www.example.com");

下面是我尝试过的唯一没有出现红色波浪线的东西。虽然我认为它是有效的,但它确实创建了一个我可能想避免的变量。

let! ignoreme = Async.AwaitTask <| httpClient.GetAsync("http://www.example.com")

应该怎么做?

最佳答案

使用 do!运算符结合 Async.Ignore :

do! Async.AwaitTask(httpClient.GetAsync("http://www.example.com")) |> Async.Ignore

这和写let! ignoreme = ...是一样的然后忽略 ignoreme绑定(bind)。

但是我认为最好坚持使用 F# 数据类型——避免 Async.AwaitTask你可以在哪里直接使用 Async<'T>类型。我认为 FSharp.Data library会有很好的帮助。

关于f# - 等待 System.Threading.Task 并忽略结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17522797/

相关文章:

android - 创建 Xamarin Android F# 项目

F# - 具有多个返回值的密码查询

c# - RegisterWaitForSingleObject 与 System.Timers

c# - 在 Windows 应用商店应用程序中获取 CoreDispatcher 的正确方法

c# - 使用 PushStreamContent 从 HTTPClient 上传

c# - ASP.NET Core 类型化客户端中的 IHttpClientFactory

c# - .NET 的 HMAC 和 HMAC KeyedHashAlgorithm 有什么区别?

.net - 如何避免以错误的顺序从 Process 类接收事件?

javascript - React 中 for 循环内的异步函数

c# - 同步并发 HttpClient 使用