我在一段代码上运行我的单元测试,在测试中执行以下操作:
Assert.IsNotNull(target.Icon);
在Icon属性的getter里面,我这样做:
System.Windows.Controls.Image img = new System.Windows.Controls.Image();
抛出此异常:System.InvalidOperationException:调用线程必须是STA,因为许多UI组件都需要这样做.
我理解这意味着什么,并且我理解我需要使用Dispatcher,但是我对于如何或为什么有点困惑…这是我的ViewModel的属性,我在运行时没有得到任何这些异常应用程序.
其他信息:这只在我升级到.NET 4时才开始失败.
最佳答案 这里的问题是你是单元测试WPF,它需要STA正常运行,但单元测试框架正在使用MTA.您需要设置单元测试框架以在STA中运行测试.
每个框架都有不同的方式.通常只需在google中键入测试框架名称和STA即可找到它.