繁体   English   中英

WPF 中加载文件的异步等待任务错误

[英]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>而不是boolawait意义。

此外,由于这是实际执行异步操作的 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM