测试项目调用以实例化 使用后台工作线程时窗口挂起



我正在尝试为最近编写的WPF/C#应用程序设置测试套件。 我没有使用任何类型的 MVVM 模式,我意识到这使得自动化测试变得更加困难,但这是当前的情况,我的老板不会给我额外的时间来重写。 所以我正在努力充分利用这种情况。

在我的测试项目中,我调用了MainWindow() ctor。 我在创建BackgroundWorker之前启动了DoWork方法,以便能够通过窗口Dispatcher通过(Action)delegate发送按键。 但是,当我在调用 MainWindow ctor 之前调用 bgWorker.RunWorkerAsync() 时,ctor 不会被执行(我在其中放置了断点和 nada)。 如果我删除对RunWorkerAsync的调用,则 ctor 可以正常工作。我在这里错过了什么?

下面是BackgroundWorker 的实现。

IsVMBusy = true;

var worker = new BackgroundWorker();

工人。DoWork += (o, ea) =>

   {
       //Do task here
    };

工人。RunWorkerDone += (o, ea) =>

        {
            IsVMBusy = false;
        };
        IsVMBusy = true;
        worker.RunWorkerAsync();

最新更新