COM/MIDL wissen nichts von .NET-Klassen wie Task
, da die Technologien unterschiedlich sind und COM älter als .NET. Sie beabsichtigen, dass ein Server eine Task
erstellt und ausführt, während ein Client (möglicherweise in einem anderen Prozess, möglicherweise kein .NET-Programm) Zugriff auf die Aufgabe hat? Dann sollte eine COM Schnittstelle zu der Aufgabe mit zugeordneten Proxy- und Stub-Implementierungen für das Marshalling von Methodenargumenten und Ergebnissen zwischen Prozessen vorhanden sein. Informieren Sie sich über COM und "COM Iterop". Außerdem muss Ihre IDL die Definition einer solchen Schnittstelle definieren oder import
.
Je nach Bedarf kann die vorhandene Schnittstelle IAsyncResult
ausreichen. Es wird von Task
implementiert und es wird ComVisibleAttribute(true)
markiert. Seine COM-Typ-Definitionen scheinen in mscorlib.tlb zu sein. Möglicherweise müssen Sie die entsprechende IDL mithilfe von OleView.exe generieren.