我写了一个小应用程序,可以确定控件的不同属性。 我使用Coded UI方法。 所以我有一个控制信息出现的GUI。 我通过它的位置确定控制。
UITestControl control = UITestControlFactory.FromPoint(new Point(X, Y));
之后,我用反射询问控件特定属性。 所有方法大约需要5秒钟。
我想在计算过程中出现加载程序消息/控件/窗口。 我找到了一个合适的解决方案,我使用Extended WPF Toolkit库中的BusyIndicator。
我尝试使用Background worker类来实现我的需求,但是我得到了下一个异常: "编码的UI测试在COM的单线程单元(STA)模式下运行。在此模式下,所有回放调用应仅从TestMethod线程发生,并且UITestControl不应在TestMethods之间共享。"
我的回答:好的。
我尝试了另一个想法。 我使用参数化线程,其中我将公寓的状态设置为STA,因为上述异常。
Thread thread = new Thread(new ParameterizedThreadStart(*CODED_UI_SEARCH_METHOD*));
thread.SetApartmentState(ApartmentState.STA);
thread.Start(Object object);
但在此之后,我收到了与我的固定线程相同的信息。
所以,我的问题是:当消息窗口/控件通知用户有关该过程时,如何解决在另一个线程中运行控件的识别问题?
提前致谢。