TcpClient.ConnectAsyncはタスクであり、F# 非同期ワークフローではすぐには機能しません。
ここで本当に単純なものが欠けていると思います.AsyncまたはBegin/End関数をワークフローから使用する一般的な方法はありますか?
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