私は C# プログラマですが、F# の非同期ワークフローについて質問があります。C# クラス ライブラリに次のクラスがあるとします。
class File {
IAsyncResult BeginReadAll(string fileName, AsyncCallback callback, object state){}
string EndReadAll(IAsyncResult result){}
}
私の理解では、F# では、次のように呼び出すことができる ReadAllAsync という関数を作成できます。
async { let! rsp = ReadAllAsync() }
また、呼び出し元のスレッドをブロックするのではなく、それをスレッド プールに解放し、操作が終了すると別のスレッドに戻ります。Async.Primitive を使用して F# でこれをコーディングする方法を理解していると思いますが、私の質問は、この ReadAllAsync 関数を C# コードから呼び出すことはできますか? その場合、F# コードをクラス ライブラリにパッケージ化して C# からアクセスするにはどうすればよいですか?