我并不完全清楚一个应用程序中有多少个分发器(Dispatchers),以及它们与线程的关系或引用方式。
据我所知,WPF应用程序有2个线程(一个用于输入,另一个用于UI)和1个分发器(与UI线程相关联)。如果我创建了另一个线程 - 让我们称其为“工作线程” - 当我在工作线程上调用Dispatcher.CurrentDispatcher
时,我会得到哪个分发器?
另一种情况:
假设有一个控制台应用程序,有2个线程 - 主线程和一个输入线程。在主线程上,我首先创建了输入线程,然后调用Application.Run()
。
Thread thread = new Thread(new ThreadStart(UserInputThreadFunction));
thread.Start();
Application.Run();
会有一个调度程序,对吧?在输入线程中,Dispatcher.CurrentDispatcher会返回主线程的调度程序吗?或者获取主线程调度程序实例的正确方式是什么?
在WPF应用程序中可能会有多个调度程序吗?是否存在任何情况下创建另一个调度程序是有意义的?