我在我的一个WPF代码中使用了一个调度程序,但现在将所有代码移到MVVM模式下面,代码如下:
this.Dispatcher.BeginInvoke(new Action(() => CallEmployee()));
Thread.Sleep(100000);
但ViewModel类文件中没有相同的内容。我试过了
System.Windows.Threading.CurrentDispatcher.BeginInvoke(new Action(() => CallEmployee()));
Thread.Sleep(100000);
但它没有调用CallEmployee
方法。
答案 0 :(得分:3)
如果您的ViewModel位于引用WindowsBase.dll
和PresentationFramework.dll
的程序集中,那么您可以执行以下操作:
System.Windows.Application.Current.Dispatcher.BeginInvoke(...);
否则,您需要抽象调度程序,可能使用某些接口和Factory模式或IoC或其他任何内容。