【发布时间】:2023-03-03 16:19:01
【问题描述】:
我开始使用异步/等待。我已经使用基于 MVVM 模式的 WPF 编写了简单的应用程序,但它并没有像我预期的那样工作。程序工作,因为没有异步函数:在执行执行函数后,它只有在循环函数结束后才会冻结和解冻。
请告诉我我错了哪一部分。我很感激任何反馈。 :)
这是我的模型视图类。它继承自 wpf 类,其中包含标准 wpf 函数的定义,如 OnPropertyChanged。
public class ModelView : wpf
{
string _state;
public string state { get { return _state; } set { _state = value; OnPropertyChanged("state"); } }
public DelegateCommand work { get; set; }
public ModelView()
{
state = "Program started";
work=new DelegateCommand(_work);
}
async void _work(object parameter)
{
state = "Working...";
int j=await loop();
state = "Done: " + j;
}
async Task<int> loop()
{
int i;
for(i=0;i<1000000000;i++);
return i;
}
}
【问题讨论】:
-
您几乎肯定会收到编译器警告,因为它告诉您问题出在哪里。
标签: c# wpf asynchronous mvvm async-await