비동기 함수를 셀에 쓴 후 "Enter"를 누르면 비동기 함수가 올바르게 호출되고 계산이 끝나면 Excel에서 이벤트 xleventCalculationEnded
을 발생시킵니다.비동기 UDF 및 xleventCalculationCanceled
그러나 "입력"을 클릭 한 직후에 다른 셀을 누르면 xleventCalculationCanceled
이벤트가 발생하고 비동기 함수가 다른 시간에 호출됩니다! 이 행동이 정상입니까? 두 번째 비동기 호출 또는 두 가지 비동기 호출 모두에 대해 Excel12(xlAsyncReturn,...)
을 통해 결과를 반환해야합니까?
다른 말로하면 xleventCalculationCanceled
이벤트는 그 결과를 의미합니까 나는을 Excel로 결과를 강제로 반환하지 않습니까? (적절한 asyncHandle
사용)
다른 스레드에서 집중적 인 계산을 위임하고 계산 중에 Excel을 차단하지 않는 비동기 함수를 사용하고 있습니다. 그러나 비동기 함수가 자동으로 두 번 호출되면 (사용자가 첫 번째 호출을 기다리지 않고 다른 셀을 클릭하는 경우와 같이) 동일한 입력에 대해 집중적 인 계산이 두 번 계산됩니다 (첫 번째 호출이 취소되었으므로 엑셀 여전히 - 대리인 스레드에 살고 ...) 어떻게이 문제를 해결합니까?
두 함수가 동일한 호출을 요구합니다 - 버그입니까?
많은 감사합니다.