좀 계산 큐에 ExcelFunction 있습니다XlCall.Excel (XlCall.xlcCalculateNow)는 BackgroundWorker에에서 evented XlCallException을 던졌습니다
이[ExcelFunction(...)]
public static void QueueCalcs(... takes ranges ...)
{
var calcRequests = ... builds list of calc request parameters from ranges ...
calcRequests.ForEach(QueueCalculation);
}
public static void QueueCalculation(calcRequestParameters)
{
var bWorker = new BackgroundWorker();
bWorker.DoWork += bWorkerDoWork;
bWorker.RunWorkerCompleted += bWorkerRunWorkerCompleted;
bWorker.RunWorkerAsnc(calcRequestParameters);
}
private static void bWorkerRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
XlCall.Excel(XlCall.xlcCalculateNow);
}
작업자가 성공적으로 완료되지만 onComplete를 위임 예외 :
을Exception of type 'ExcelDna.Integration.XlCallException' was thrown
배경 작업자를 제거하고 XlCall.Excel (XlCall.xlcCalculateNow)을 호출 한 다음 정기적 인 foreach 루프를 사용하면 함수가 예상대로 작동합니다.
이와 같은 작업을 수행 할 수 있습니까?
ExcelAsyncUtil.QueueAsMacro (...)가 작동했습니다. 지난 몇 시간 동안 RDT 서버 나 RxExtensions 중 하나를 사용하려고했지만, 예제가 부족해도 아무 것도 작동하지 않게되었습니다. 기본적으로 계산을 위해 일부 웹 서비스를 쿼리하고 추가 기능에서 응답을 캐시하며 Excel 기능을 통해 캐시 된 응답의 속성에 액세스 할 수 있습니다. 나와 함께 인도 할 수있는 실천 사례가 있습니까? – yenta
다음 예를 시도해보십시오. http://excel-dna.net/2013/04/02/caching-and-asynchronous-excel-udfs/ 그런 다음 http://groups.google. Google 그룹에 게시하십시오. co.kr/group/excedna에 문의하십시오. – Govert
나는 그 게시물을 놓친 것에 대해 약간 바보 같다. 고마워, 내가 살펴볼 게. – yenta