Pregunta

FYI 1: UDF= Función definida por el usuario (hoja de trabajo) FYI 2: XLL= Excel Add-in (DLL -> XLL)

Estoy escribiendo un complemento XLL para Excel en C / C ++ usando la API de Excel4 () de Microsoft. Link: http://msdn.microsoft.com/en-us/Biblioteca / BB687835.ASPX

Tengo una tarea "complicada" que quiero usar múltiples hilos para un mejor rendimiento.Si bien entiendo que el cálculo en Excel 2003 es un solo roscado, quiero saber si mi UDF puede (a) hilos de engendro para trabajar, (b) esperar a que los hilos terminen, y (c) devuelva el resultado.

Para ser muy claro, no hará ninguna automatización de Excel ni llame a Excel4 () en los hilos.

Pseudo Código:

Variant MyComplexUDF(Variant input1, Variant input2)
{
    Thread t1 = new WorkerThread(input1);
    Thread t2 = new WorkerThread(input2);
    t1.join();
    t2.join();
    return [t1.Result(), t2.Result()];
}

En la superficie, esto aparece bien, pero no soy un experto en DLL / XLLS y en el roscado.

P.s.He buscado a Google (alto y bajo) para esta respuesta, y no puedo encontrar nada sobre el asunto.

¿Fue útil?

Solución

Puedes comenzar tantos hilos como quieras y luego esperarlos.También hay soporte para Async UDF en la última versión de la API.Puede encontrar algunos ejemplos en http://xll.codeplex.com .Eche un vistazo a la prueba / async.cpp: http://xll.codeplex.com/ SourceCETROL / FALSET / VER PISTA / 14528 # 139508

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top