pywin32를 사용하여 Python에서 사용자 정의 객체를 만들었습니다. 해당 개체를 호출하는 동안 몇 시간이 걸립니다. 다음은 매크로를 실행하는 동안 응용 프로그램이 정지하지 않도록 응용 프로그램 stat와 관련하여 비동기로 만들려고합니다.vba에서 비동기 함수 호출을 수행하는 방법
Sub demo()
demofunction
End Sub
Function demofunction()
Dim demoobj As Object
Do While demoobj Is Nothing
DoEvents
Set demoobj = CreateObject("Python.DemoObj")
Loop
Debug.Print demoobj.Hello
End Function
분명히 비동기 실행과 관련하여 코드가 작동하지 않습니다. 어떻게 가능합니까?
위의 코드는 애플리케이션을 잠시 동안 정지시키면서 작동합니다.
'CreateObject'는 블로킹 호출입니다. 루프는 실제로 아무 것도하지 않습니다. – Comintern
내가 원한 것을 정확하게 이해해 주셔서 감사합니다. 그게 내가 왜 분명히 넣어. 내 코드는 단지 설명을위한 것입니다. – Rahul
VBA는 비동기 또는 다중 스레드를 수행하지 않습니다. 요구 사항 인 경우 최신/강력한 언어가 필요합니다. VB.NET 또는 C# ....을 고려하거나 VBScript + VBA로 비동기 솔루션을 해킹하십시오. 그 주제에 대해 조사 했니? –