目前我知道以下Dispatcher对象。
如果您有文本视图,则可以使用IWpfTextView.VisualElement.Dispatcher.
如果您的类是由 MEF 构造的(用[Export]您自己的代码标记而不是直接从您自己的代码构造),那么您可以使用 MEF 部分解析算法和构造发生在 UI 线程上的事实,允许使用Dispatcher.CurrentDispatcher. 例如:
[Export(typeof(ISomeInterface))]
public class MyClass : ISomeInterface {
private readonly Dispatcher _dispatcher;
public MyClass() {
_dispatcher = Dispatcher.CurrentDispatcher.
}
}
Run Code Online (Sandbox Code Playgroud)您可以Application.Current.Dispatcher从任何代码使用。
如果有的话,获得一个的推荐做法是Dispatcher什么?
不要依赖 UI 线程上的 MEF 组合。如果它现在对你有用,那你就很幸运了。而且MEF本质上是延迟的并且充满了Lazy,所以如果你碰巧在后台线程上实现它,整个子图将在后台实现。
我会使用 #1 或 #3(无论哪一个,都只有一个 UI 线程调度程序,无论您如何到达它)。
| 归档时间: |
|
| 查看次数: |
639 次 |
| 最近记录: |