1
可以在C++/CLI中使用TPL嗎?
我發現的主要材料與PPL有關,而不是TPL。如果我試着爲我所用的C#(如檢索的異步操作的結果,通過->Result
)使用TPL,然後得到像TPL + C++/CLI:教程,示例
錯誤150錯誤C2039:「結果」:是不是「系統中的一員::線程::任務::任務`1'
任何示例或教程?謝謝
可以在C++/CLI中使用TPL嗎?
我發現的主要材料與PPL有關,而不是TPL。如果我試着爲我所用的C#(如檢索的異步操作的結果,通過->Result
)使用TPL,然後得到像TPL + C++/CLI:教程,示例
錯誤150錯誤C2039:「結果」:是不是「系統中的一員::線程::任務::任務`1'
任何示例或教程?謝謝
你忘了發佈代碼片段,這樣你的問題是相當不可想象的。請務必使用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;
}
非常感謝您的意見。事實上,沒有跡象表明TPL不適用於cpp/CLI。我挖掘了更多,發現編譯器的「平臺工具集」參數設置爲v90而不是v100(我已經將項目從3.5移植到4.0)。這是原因。 –
'task-> Result'對我來說工作得很好。你能告訴我們你的代碼嗎?另外,我懷疑你會找到任何好的教程,因爲除了一些特定的任務(如互操作)之外,C++/CLI並不常用。 – svick