FYI 1:UDF =ユーザー定義(ワークシート)関数FYI 2:XLL = Excelアドイン(DLL-> XLL)
MicrosoftのExcel4()APIを使用して、C /C++でExcel用のXLLアドインを作成しています。
リンク: http: //msdn.microsoft.com/en-us/library/bb687835.aspx
パフォーマンスを向上させるために複数のスレッドを使用したい「複雑な」タスクがあります。Excel 2003での計算はシングルスレッドであることを理解していますが、UDFが(a)スレッドを生成して作業を実行し、(b)スレッドが終了するのを待ち、(c)結果を返すことができるかどうかを知りたいです。
明確にするために、私はExcelの自動化を行わず、スレッドでExcel4()を呼び出しません。
擬似コード:
バリアントMyComplexUDF(バリアント入力1、バリアント入力2) {{ スレッドt1=new WorkerThread(input1); スレッドt2=new WorkerThread(input2); t1.join(); t2.join(); return [t1.Result()、t2.Result()]; }
一見、これは問題ないように見えますが、私はDLL/XLLとスレッドの専門家ではありません。
PS私はこの答えをグーグル(高低)で検索しましたが、問題について何も見つかりません。