Kre*_*kon 2 .net c# parallel-processing async-await windows-store-apps
如何在此代码中传递framworkElement并使用async关键字?
SaveImage = new RelayCommand<FrameworkElement>(frameworkElementForPrint =>
{
StorageFile file = await PickImageFileToSave();
SaveVisualElementToFile(frameworkElementForPrint, file);
});
Run Code Online (Sandbox Code Playgroud)
现在等待不能用......
我建议您将所有逻辑分解为单独的方法,如下所示:
public async Task SaveImageAsync(FrameworkElement frameworkElementForPrint)
{
StorageFile file = await PickImageFileToSaveAsync();
await SaveVisualElementToFileAsync(frameworkElementForPrint, file);
}
Run Code Online (Sandbox Code Playgroud)
然后将其包装成RelayCommand:
SaveImage = new RelayCommand<FrameworkElement>(async arg => { await SaveImageAsync(arg); });
Run Code Online (Sandbox Code Playgroud)
这种分离允许您对SaveImageAsync逻辑进行单元测试(当然假设您使用适当的抽象进行重构).
这篇MSDN文章有关于async命令的更多细节.
| 归档时间: |
|
| 查看次数: |
1337 次 |
| 最近记录: |