我正在使用MvvmCross和AsyncEx库在Windows 10 (UWP)应用程序中。在ViewModel中,我有一个INotifyTaskCompletion属性(1),它与ViewModel中的一个异步方法(2)连接起来。
在(2)中,我调用了一个异步库方法,该方法:
问:最好的方法是什么,以避免阻塞UI线程?
从Stephen Cleary那里了解到,在异步代码中不要阻塞并且不要在库方法中使用Task.Run。所以我必须……
在(2)中,我调用了一个异步库方法,该方法:
- 检查本地缓存
- 异步下载数据
- 将数据添加到缓存中
问:最好的方法是什么,以避免阻塞UI线程?
从Stephen Cleary那里了解到,在异步代码中不要阻塞并且不要在库方法中使用Task.Run。所以我必须……
- 将缓存调用移动到(2)中,例如:
- 使用Task.Run(检查缓存)
- 异步调用库方法
- 再次使用Task.Run(缓存数据)?
Task.Run()
来进行缓存代码是“正确”的。 - Jcl