我想开始长时间运行操作,例如从ViewModel请求网页,并在我的View上执行一些进度更新操作。之前,我通过await
模型的async
方法轻松实现了这一点,但在当前项目中,我受限于.NET 4.0,因此我无法使用C#5功能。
建议的方法是什么?
答案 0 :(得分:1)
使用此 -
Task.Factory.StartNew(() =>
{
// Code to load web page or any code you want to run asynchronously
}).ContinueWith(task =>
{
// Code you want to execute on completion of the above synchronous task,
}, UIHelper.GetUITaskScheduler());
其中UIHelper类具有以下静态方法 -
public class UIHelper
{
/* Some other methods */
public static TaskScheduler GetUITaskScheduler()
{
TaskScheduler scheduler = null;
Application.Current.Dispatcher.Invoke(() =>
{
scheduler = TaskScheduler.FromCurrentSynchronizationContext();
});
return scheduler;
}
}
答案 1 :(得分:0)