相关疑难解决方法(0)

Dispatcher.CurrentDispatcher与Application.Current.Dispatcher

Dispatcher.CurrentDispatcher(in System.Windows.Threading)和Application.Current.Dispatcher(in System.Windows)之间有什么区别?

我的直觉告诉我,Application.Current.Dispatcher永远不会改变,并且对当前应用程序中的所有线程都是全局的,同时Dispatcher.CurrentDispatcher可能会Dispatcher根据调用它的线程创建一个新实例.

那是对的吗?

如果是,Dispatcher.CurrentDispatcher主要用于多线程UI 的目的是什么?

.net wpf dispatcher

72
推荐指数
3
解决办法
5万
查看次数

在单元测试中使用WPF Dispatcher

我无法让Dispatcher运行委托我在单元测试时传递给它.当我运行程序时,一切正常,但是,在单元测试期间,以下代码将无法运行:

this.Dispatcher.BeginInvoke(new ThreadStart(delegate
{
    this.Users.Clear();

    foreach (User user in e.Results)
    {
        this.Users.Add(user);
    }
}), DispatcherPriority.Normal, null);
Run Code Online (Sandbox Code Playgroud)

我在我的viewmodel基类中有这个代码来获取Dispatcher:

if (Application.Current != null)
{
    this.Dispatcher = Application.Current.Dispatcher;
}
else
{
    this.Dispatcher = Dispatcher.CurrentDispatcher;
}
Run Code Online (Sandbox Code Playgroud)

我是否需要做一些事情来初始化Dispatcher进行单元测试?Dispatcher永远不会在委托中运行代码.

.net c# wpf unit-testing dispatcher

48
推荐指数
4
解决办法
3万
查看次数

标签 统计

.net ×2

dispatcher ×2

wpf ×2

c# ×1

unit-testing ×1