[英]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.