TPL + C ++ / CLI:教程,示例

时间:2012-05-21 08:29:26

标签: c++-cli task-parallel-library

是否可以在C ++ / CLI中使用TPL? 我发现的主要材料与PPL有关,而不是TPL。如果我尝试使用我用于C#的TPL(例如,通过->Result检索异步操作的结果),那么得到类似

的内容
  

错误150错误C2039:'结果':不是'System :: Threading :: Tasks :: Task`1'的成员

任何样本或好的教程?感谢

1 个答案:

答案 0 :(得分:3)

您忘记发布代码段,因此您的问题非常难以理解。请务必使用Task<TResult>来获取Result属性。这个示例代码编译并运行没有问题。

#include "stdafx.h"
#using <System.Core.dll>
using namespace System;
using namespace System::Threading::Tasks;

ref class SomeTask {
public:
    static int run() {
        return 42;
    }
};

int main(array<System::String ^> ^args)
{
    Task<int>^ task = Task<int>::Factory->StartNew(gcnew Func<int>(&SomeTask::run));
    task->Wait();
    Console::WriteLine(task->Result);
    return 0;
}