Für Excel 2003 kann ein UDF in einem XLL mehrere Threads verwenden?
-
12-12-2019 - |
Frage
fyi 1: udf= benutzerdefiniert (Arbeitsblatt) Funktion FYI 2: XLL= Excel Add-In (DLL -> XLL)
Ich schreibe ein XLL-Add-In für Excel in C / C ++ mit der EXCEL4-API von Microsoft.
Link: http://msdn.microsoft.com/de-us/Bibliothek / BB687835.Aspx
Ich habe eine "komplizierte" Aufgabe, die ich mehrere Threads für eine bessere Leistung verwenden möchte.Während ich verstehe, dass die Berechnung in Excel 2003 ein einzelnes Gewinde ist, möchte ich wissen, ob meine UDF (a) Threawn-Threads zu arbeiten, (b) warten, bis die Threads abgeschlossen sind, und (c) das Ergebnis zurückgeben.
.Um sehr klar zu sein, werde ich keine Excel-Automatisierung durchführen oder Excel4 () in den Threads anrufen.
pseudo-code:
generasacodicetagpre.Auf der Oberfläche erscheint dies in Ordnung, aber ich bin kein Experte für DLLs / XLLs und eingewinde.
p.s.Ich habe Google (High and Niedrig) für diese Antwort durchsucht und kann nichts von der Angelegenheit finden.
Lösung
Sie können so viele Threads beginnen, wie Sie möchten, und warten Sie auf sie.Es gibt auch Unterstützung für Async UDFs in der neuesten Version der API.Einige Beispiele finden Sie in http://xll.codeplex.com .Schauen Sie sich test / async.cpp an: http://xll.codeplex.com/ Saurecontrol / änderung / ansicht / 14528 # 139508