1
我試圖做定義返回任務如何定義在IDL文件返回任務的接口
interface MyInterface : IUnknown
{
HRESULT myFunction(
[out, retval] System.Threading.Tasks.Task task);
}
這給了我一個異常說「期待不久的‘任務’一式規範」的界面
我試圖做定義返回任務如何定義在IDL文件返回任務的接口
interface MyInterface : IUnknown
{
HRESULT myFunction(
[out, retval] System.Threading.Tasks.Task task);
}
這給了我一個異常說「期待不久的‘任務’一式規範」的界面
COM/MIDL不知道.NET類,如Task
,因爲技術是獨特的,COM早於.NET。你打算一個服務器將創建並執行一個Task
,而客戶端(可能在一個獨特的過程中,可能不是一個.NET程序)將有權訪問該任務?然後應該有任務的接口,以及關聯的代理和存根實現,用於編組方法參數和進程之間的結果。閱讀COM和「COM Iterop」。另外,您的IDL需要定義或者定義這種接口。
根據您的需要,現有的接口IAsyncResult
就足夠了。它由Task
實施,它被標記爲ComVisibleAttribute(true)
。它的COM類型定義似乎在mscorlib.tlb中。您可能需要使用OleView.exe生成相應的IDL。