我是C#程序員,但我對F#中的異步工作流程有疑問。假如我有一個C#類庫以下類:F#中的異步工作流程
class File {
IAsyncResult BeginReadAll(string fileName, AsyncCallback callback, object state){}
string EndReadAll(IAsyncResult result){}
}
我的理解是,有可能在F#我作出了一個名爲ReadAllAsync功能,我可以這樣調用:
async { let! rsp = ReadAllAsync() }
和它不會阻塞調用線程,而是將其釋放到線程池,然後在操作完成時返回到另一個線程。我想我知道如何使用Async.Primitive在F#中編寫代碼,但我的問題是:我可以從C#代碼調用此ReadAllAsync函數嗎?如果是這樣,我如何將F#代碼打包到類庫中以便從C#訪問?