我有一个WPF应用程序,采用MVVM架构。ViewModel和View连接在一起。View中的控件绑定到ViewModel中,并且ViewModel实现了INotifyChanged接口。ViewModel中简单的控件更新运作正常。
我想要创建一个信息类(Info class),其中包含一些信息字段。接下来,我想要创建自己的线程,将Info类中的字段映射到ViewModel中的字段,从而更新View。Info类的对象将被用作在ViewModel中调用函数的参数。
private int someControl;
public SomeControl {
get{return someControl;}
set
{
someControl = value;
OnPropChanged("SomeControl");
}
private InfoClass info = new InfoClass();
Thread thread = null;
public ViewModel()
{
Thread thread = new Thread(new ThreadStart(update));
thread.IsBackground = true;
thread.start();
someLongFunction(info);
}
private void update()
{
SomeControl = info.someField;
thread.sleep(1000);
update();
}
我该添加或更改什么来定期获得更新?现在,只有当一些长时间运行的函数结束其工作时才会进行更新。
System.Threading.Timer
中定义计时器,或者您将不得不使用线程同步原语(Mutex
和Event
)进行工作。而这是在运行someLongFunction
时发生的吗? - bash.d