Iga*_*nik 6 .net c# task-parallel-library async-await
我有一个上传图像的小服务,我这样使用它:
ImageInfo result = await service.UploadAsync(imagePath);
Run Code Online (Sandbox Code Playgroud)
我想要做的是显示进度对话框,但前提是上传操作需要超过2秒.上传完成后,我想关闭进度对话框.
我使用Task/ContinueWith做了一个粗略的解决方案,但我希望有一种更"优雅"的方式.
我怎样才能实现这个目的async/await?
可能是这样的吗?
var uploadTask = service.UploadAsync(imagePath);
var delayTask = Task.Delay(1000);//Your delay here
if (await Task.WhenAny(new[] { uploadTask, delayTask }) == delayTask)
{
//Timed out ShowProgress
ShowMyProgress();
await uploadTask;//Wait until upload completes
//Hide progress
HideProgress();
}
Run Code Online (Sandbox Code Playgroud)