Я намагаюся створити тестовий набір длянещодавно написаний додаток WPF / C # Я не використовував будь-яку схему MVVM, яка, як я розумію, ускладнює автоматичне тестування набагато складніше, але це поточний стан речей, і мій начальник не збирається давати мені додатковий час на перезапис. Тому я намагаюся зробити найкраще із ситуації.
У своєму тестовому проекті я телефоную на MainWindow()
ctor. Я починаю свою DoWork
спосіб a BackgroundWorker
безпосередньо перед її створенням, щоб мати можливість надсилати натискання клавіш через (Action)delegate
через вікно "s Dispatcher
. Однак, коли я дзвоню bgWorker.RunWorkerAsync()
перед тим як зателефонувати MainWindow
ctor, ctor не виконується (я ставлю в ньому точки прориву і нада). Якщо я видалю дзвінок на RunWorkerAsync
тоді ctor працює правильно. Що я тут пропускаю?
Відповіді:
0 для відповіді № 1Нижче представлена реалізація BackgroundWorker.
IsVMBusy = вірно;
var worker = новий BackgroundWorker ();
робітник.До роботи + = (о, еа) =>
{
//Do task here
};
робітник.RunWorkerCompleted + = (о, еа) =>
{
IsVMBusy = false;
};
IsVMBusy = true;
worker.RunWorkerAsync();