簡體   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