Я программист на C #, но у меня есть вопрос об Async Workflows в F #. Предположим, у меня есть следующий класс в библиотеке классов C #:
class File {
IAsyncResult BeginReadAll(string fileName, AsyncCallback callback, object state){}
string EndReadAll(IAsyncResult result){}
}
Насколько я понимаю, в F # для меня возможно создать функцию с именем ReadAllAsync, которую я могу вызывать так:
async { let! rsp = ReadAllAsync() }
и что он не будет блокировать вызывающий поток, а скорее освободит его в пуле потоков, а затем вернет в другой поток, когда операция завершится. Я думаю, что я понимаю, как кодировать это в F # с помощью Async.Primitive, но мой вопрос: могу ли я вызвать эту функцию ReadAllAsync из кода C #? Если так, как мне упаковать код F # в библиотеку классов для доступа из C #?