[英]Async await task error for load files in WPF
我正在尝试在UploadBtnExecute方法中执行异步操作。我正在 wpf 上进行此操作。 但它显示了一些错误。
错误是:- 错误 1::-'
任务 UploadBtnExecute(object)' 的返回类型错误
错误 2::- '
bool'不包含'GetAwaiter'的定义,并且找不到接受'bool'类型的第一个参数的可访问扩展方法'GetAwaiter'(您是否缺少 using 指令或程序集引用?)
我试过的:
按钮点击事件触发 function
UploadBtnClick = new RelayCommands(UploadBtnExecute,UploadBtnCanExecuteUpload);
public async Task UploadBtnExecute(object param)
{
Progress windowShow = new Progress();
windowShow.Show();
await UploadFiles();
windowShow.Hide();
}
public bool UploadFiles(List<Item> selectedFiles)
{
//do some upload code here
return true;
}
错误一:
事件处理程序必须返回void
。 在这种情况下,对于不返回值的异步 function,建议使用async void
而不是async Task
(主要是因为实际上没有替代方案)。
错误2:
您的第二个UploadFiles
必须返回一个Task<bool>
而不是bool
, await
意义。
此外,由于这是实际执行异步操作的 function,您可能会等待它成为async Task<bool>
并在上传内容的实际代码上使用await
,但这可能取决于您的实际目标。
总而言之,您的代码片段应该像这样调整:
UploadBtnClick = new RelayCommands(UploadBtnExecute,UploadBtnCanExecuteUpload);
public async void UploadBtnExecute(object param)
{
Progress windowShow = new Progress();
windowShow.Show();
await UploadFiles();
windowShow.Hide();
}
public async Task<bool> UploadFiles(List<Item> selectedFiles)
{
// do some upload code here
// using await ....
return true;
}
// alternatively:
public Task<bool> UploadFiles(List<Item> selectedFiles)
{
// do some upload code here
return Task.FromResult(true);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.