我正在尝试在 F# 中实现一种可以从 C# 中使用的方法async .. await。这是存根:
[<Extension>]
static member DoWorkAsync(value : MyValueType): Task<MyOtherType> =
task {
// do something and return
}
Run Code Online (Sandbox Code Playgroud)
然而,当我从 C# 使用这个方法时,我得到
“await”表达式只能在标有“async”修饰符的方法或 lambda 中使用
用修饰符标记 F# 方法的方法是什么async?
如果没有看到 C# 代码,很难判断,但听起来你正在做类似的事情:
public Task<MyOtherType> FooAsync(MyValueType v)
{
var v = await DoWorkAsync(v);
return new MyOtherType(v);
}
Run Code Online (Sandbox Code Playgroud)
而以下方法可以工作:
public async Task<MyOtherType> FooAsync(MyValueType v)
// ^^^^^
{
var v = await DoWorkAsync(v);
return new MyOtherType(v);
}
Run Code Online (Sandbox Code Playgroud)