将FSharpAsync对象转换为C#任务的正确方法是什么?

时间:2019-11-19 21:27:25

标签: c# asynchronous f#

我正在尝试将一些F#代码转换为C#。我正在编写的C#代码取决于我无法更改的Nuget程序包。 nuget包中的函数之一返回一种FSharpAsync >类型。

我想将FSharpAsync对象转换为C#任务。我正在尝试像这样使用FSharpAsync.StartAsTask:

var task = FSharpAsync.StartAsTask<FSharpChoice<Unit, CustomType>>(fsharpAsyncObj, null, null);

这是进行这种转换的适当方法吗?有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

是的,通过将特定于F#的异步类型转换为C#任务,使用Async.StartAsTask使API对C#友好。