我已經閱讀了許多關於Application.Current.Dispacher
在單元測試時爲null的文章。這是我的確切問題。我發現This這正是我正在尋找的。但是,似乎當我去實現這個我不能編譯。出現以下錯誤:使用Application.Current.Dispatcher進行單元測試
無法在此處訪問私有構造函數'Dispatcher'。
在上面的文章中,他們聲明有很多方法來實現我下面的代碼。因爲他沒有檢查多線程安全檢查。我怎樣才能做這些檢查,並得到這個編譯?
public static Dispatcher RootDispatcher
{
get
{
if (_rootDispatcher == null)
{
if (Application.Current != null)
{
_rootDispatcher = Application.Current.Dispatcher;
}
else
{
var thread = Thread.CurrentThread;
_rootDispatcher = new Dispatcher(thread);
}
}
return _rootDispatcher;
}
internal set { _rootDispatcher = value; }
}
謝謝,那麼我應該不創建rootdispacher類? – JamTay317
Dispatcher.CurrentDispatcher將返回一個新的Dispatcher實例,如果當前線程沒有附加到它的話。 因此它應該是安全的單元測試場景。 如果您在生產和測試中都有此代碼,則需要進行區分。 – LoekD