使用 `async` 修饰符标记 F# 方法
Marking F# method with `async` modifier
我正在尝试在 F# 中实现一个方法,该方法将以 async .. await
方式从 C# 中使用。
这是存根:
[<Extension>]
static member DoWorkAsync(value : MyValueType): Task<MyOtherType> =
task {
// do something and return
}
但是,当我从 C# 使用此方法时,我得到了
The 'await' expression can only be used in a method or lambda marked with the 'async' modifier
用 async
修饰符标记 F# 方法的方法是什么?
如果不看 C# 代码就很难判断,但听起来您正在做类似的事情:
public Task<MyOtherType> FooAsync(MyValueType v)
{
var v = await DoWorkAsync(v);
return new MyOtherType(v);
}
而以下方法会起作用:
public async Task<MyOtherType> FooAsync(MyValueType v)
// ^^^^^
{
var v = await DoWorkAsync(v);
return new MyOtherType(v);
}
我正在尝试在 F# 中实现一个方法,该方法将以 async .. await
方式从 C# 中使用。
这是存根:
[<Extension>]
static member DoWorkAsync(value : MyValueType): Task<MyOtherType> =
task {
// do something and return
}
但是,当我从 C# 使用此方法时,我得到了
The 'await' expression can only be used in a method or lambda marked with the 'async' modifier
用 async
修饰符标记 F# 方法的方法是什么?
如果不看 C# 代码就很难判断,但听起来您正在做类似的事情:
public Task<MyOtherType> FooAsync(MyValueType v)
{
var v = await DoWorkAsync(v);
return new MyOtherType(v);
}
而以下方法会起作用:
public async Task<MyOtherType> FooAsync(MyValueType v)
// ^^^^^
{
var v = await DoWorkAsync(v);
return new MyOtherType(v);
}