gpt4 book ai didi

asynchronous - F# 异步工作流中的 TcpClient.ConnectAsync 或 BeginConnect/EndConnect

转载 作者:行者123 更新时间:2023-12-04 04:45:22 25 4
gpt4 key购买 nike

TcpClient.ConnectAsync是一个任务,它不能很容易地与 F# 异步工作流一起工作。

我想我在这里遗漏了一些非常简单的东西——是否有一种通用的方法来使用工作流中的 Async 或 Begin/End 函数?

最佳答案

看看 Async.AwaitTask Async.FromBeginEnd .

通常这会起作用:

async {
...
do! client.ConnectAsync(address, port) |> Async.AwaitTask
}

但是,因为 Async模块只能直接与 Task<'T> 一起使用和 ConnectAsync返回 Task ,在这种特殊情况下所需的代码稍长:

do! client.ConnectAsync(address, port) |> Async.AwaitIAsyncResult |> Async.Ignore

let! _ = client.ConnectAsync(address, port) |> Async.AwaitIAsyncResult

关于asynchronous - F# 异步工作流中的 TcpClient.ConnectAsync 或 BeginConnect/EndConnect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13352464/

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