3

TcpClient.ConnectAsyncはタスクであり、F# 非同期ワークフローではすぐには機能しません。

ここで本当に単純なものが欠けていると思います.AsyncまたはBegin/End関数をワークフローから使用する一般的な方法はありますか?

4

1 に答える 1

6

とを見てAsync.AwaitTaskくださいAsync.FromBeginEnd

通常、これは機能します:

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

ただし、このAsyncモジュールは と を直接処理するだけなので、この特定のケースで必要なコードは少し長くなりTask<'T>ますConnectAsyncTask

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

また

let! _ = client.ConnectAsync(address, port) |> Async.AwaitIAsyncResult
于 2012-11-12T22:17:32.503 に答える