我正在运行一个测试单元(并了解它们).很简单,我的单位创建一个List并将其传递给我的MainWindow.
我的问题是在show()主窗口之后单元方法结束.在关闭MainWindow之前,我希望装置不能完成.这就是我所做的(见下文) - 它显然不起作用,感觉我在这里走错了路.我该怎么做呢?
[TestClass]
public class Logging
{
bool continueOn = true;
[TestMethod]
public void ShowLogs()
{
ShowResults(createLogList());
}
private void ShowResults(List<Log> logList)
{
MainWindow mw = new MainWindow(logList);
mw.Closed += mw_Closed;
mw.Show();
while (continueOn)
{ }
}
void mw_Closed(object sender, EventArgs e)
{
this.continueOn = false;
}
private List<Log> createLogList()
{
List<Log> listLog = new List<Log>();
//logic
return listLog;
}
Run Code Online (Sandbox Code Playgroud)
也许我必须把它放到后台工作者的线程并监控 - 说实话我不知道,在我浪费时间之前,我会感激一些指导.
Art*_*nes 14
必须创建WPF窗口并在支持WPF窗口基础结构(消息泵送)的线程上显示.
[TestMethod]
public void TestMethod1()
{
MainWindow window = null;
// The dispatcher thread
var t = new Thread(() =>
{
window = new MainWindow();
// Initiates the dispatcher thread shutdown when the window closes
window.Closed += (s, e) => window.Dispatcher.InvokeShutdown();
window.Show();
// Makes the thread support message pumping
System.Windows.Threading.Dispatcher.Run();
});
// Configure the thread
t.SetApartmentState(ApartmentState.STA);
t.Start();
t.Join();
}
Run Code Online (Sandbox Code Playgroud)
注意:
有关更多信息,请访问此链接.
| 归档时间: |
|
| 查看次数: |
4148 次 |
| 最近记录: |