繁体   English   中英

实现cli / c ++中的Async / Await方法以返回任务?

[英]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 ,但是您有以下可用选项。

  1. 如果要将该方法实现为真正的异步方法,则需要直接使用Task Parallel Library。 我最近创建的线程库包括几种方法,这些方法可以以异步方式简化编程语言结构的实现,而无需使用async / await 我正是出于这个目的创建了该库,但在实现中确实强调了C#/ VB代码(在许多地方都使用了委托)。

  2. 如果要同步实现该方法,则可以使用Task.FromResult返回一个完整的Task<TResult>实例,并将Result属性设置为该方法的返回值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM