我正在尝试使用C#/.NET 4.0自动化外部应用程序的GUI。被自动化的应用程序(AUT)是一个VB6应用程序。
在执行操作或单击按钮时,AUT有时需要等待DB响应很长时间。当应用程序等待DB结果时,应用程序本身是空闲的(不会注册太多的CPU使用率),但是被阻塞了(无法单击或与之交互)。
-到目前为止,我已经尝试将鼠标指针(沙漏)作为指示器,但有时应用程序被阻塞但光标是正常的。因此这是不可靠的。
-我尝试查看AUT的主进程中的TotalProcessorTime (这测量应用程序是空闲还是繁忙),但像我所说,有时应用程序是空闲的,但仍然被阻塞。
因此,我想利用StackOverflow上的经验,看看是否有人已经知道如何处理这个问题,并且/或者您是否有任何想法可以实现这一点。
谢谢
编辑:
我一直在摸索,刚刚发现了一些东西。
虽然AUT被阻塞,但它没有响应键盘或鼠标输入。但是,如果我向窗口发送WM_LBUTTONCLICK消息,我可以确认消息正在处理(并且UI会发生变化)。
因此,我猜他们在进行DB调用时特意阻塞了应用程序。
在执行操作或单击按钮时,AUT有时需要等待DB响应很长时间。当应用程序等待DB结果时,应用程序本身是空闲的(不会注册太多的CPU使用率),但是被阻塞了(无法单击或与之交互)。
-到目前为止,我已经尝试将鼠标指针(沙漏)作为指示器,但有时应用程序被阻塞但光标是正常的。因此这是不可靠的。
-我尝试查看AUT的主进程中的TotalProcessorTime (这测量应用程序是空闲还是繁忙),但像我所说,有时应用程序是空闲的,但仍然被阻塞。
因此,我想利用StackOverflow上的经验,看看是否有人已经知道如何处理这个问题,并且/或者您是否有任何想法可以实现这一点。
谢谢
编辑:
我一直在摸索,刚刚发现了一些东西。
虽然AUT被阻塞,但它没有响应键盘或鼠标输入。但是,如果我向窗口发送WM_LBUTTONCLICK消息,我可以确认消息正在处理(并且UI会发生变化)。
因此,我猜他们在进行DB调用时特意阻塞了应用程序。