【发布时间】:2015-07-30 22:49:21
【问题描述】:
我是 MVVM 模式的新手。我从另一个线程更新进度条时遇到问题。
View.Xaml
<ProgressBar Value="{Binding ProgressBarValue}">
ViewModel.cs
public int ProgressBarValue
{
get
{
return status;
}
set
{
this.status = value;
this.RaisePropertyChanged(() => this.ProgressBarValue);
}
}
Thread th;
private void OnOk()
{
th=new Thread(new ThreadStart(StartProcess));
}
private void StartProcess()
{
utilityclass.DoWork();
}
UtilityClass.cs
public void DoWork()
{
for(i=0;i<100;i++)
{
//dosomething
}
}
我的问题是如何将 DoWork 方法的进度更新到视图?我通过使用后台工作类找到了许多解决方案。但由于某些原因,我无法遵循这些方法。我真的需要帮助。
【问题讨论】:
-
您可以使用
Dispatcher向MainUI Thread 发送信息。 -
@NikhilAgrawal 你有任何例子吗?如果有,请分享。
-
“但由于某些原因,我无法遵循这些方法。” - 这些原因是什么,您尝试了哪些方法?
标签: c# wpf multithreading mvvm thread-safety