[英]Implementing a Async/Await method returning a task in cli/c++?
我正在尝试在cli / cpp托管代码中实现ac#类的接口。
界面看起来像这样:
public interface IManagedAlgorithmHost<TOptions,TResult> : IManagedAlgorithmHost
{
Task<TResult> RunAlgorithmAsync();
void SetAlgorithmContext(IManagedAlgorithmContext<TOptions> context);
}
我想出了如何将dll以及该dll导入到我的cli / cpp项目中,但是我无法弄清楚它是否甚至有可能在托管的c ++中创建一个实现该RunAlgorithmAsync方法的类。
public ref class MyAlgHost
{
}
如何使用接口扩展上述c ++ /托管类,以及如何创建返回Task的方法
您不能使用async
/ await
,但是您有以下可用选项。
如果要将该方法实现为真正的异步方法,则需要直接使用Task Parallel Library。 我最近创建的线程库包括几种方法,这些方法可以以异步方式简化编程语言结构的实现,而无需使用async
/ await
。 我正是出于这个目的创建了该库,但在实现中确实强调了C#/ VB代码(在许多地方都使用了委托)。
如果要同步实现该方法,则可以使用Task.FromResult
返回一个完整的Task<TResult>
实例,并将Result
属性设置为该方法的返回值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.