簡體   English   中英

如何在C#中異步調用Web方法?

[英]How to call web method in C# asynchronously?

如何使用異步在C#中調用Web方法。 我正在使用像下面

    public void SaveSuggestedItems(string emailbody, string OrderHeaderID)
    {
       try{
            ...
        }
        catch{
           ...
        }
    }

在c#im中使用這樣

  public async Task<string> saveSuggestedItem()
    {
        OHDWebService OHDService = new OHDWebService();
        var saveSuggestedItem = OHDService.SaveSuggestedItems(eBody.Text, hfdOrderRecordID.Value);
        var suggestedItems = await saveSuggestedItem;
        return suggestedItems;
    }

但是它顯示錯誤,例如無法將void分配給隱式類型的局部變量

您需要使方法異步。 更改此:

public void SaveSuggestedItems(string emailbody, string OrderHeaderID)

對此:

public async Task SaveSuggestedItems(string emailbody, string OrderHeaderID)

現在您可以等待。

注意:您不必(也不能)實際明確地return Task。 編譯器會為您生成一個。

另外,考慮將名稱更改SaveSuggestedItemsAsync()

最后,確保實際上有必要使其異步。

只需替換:

var saveSuggestedItem = OHDService.SaveSuggestedItems(eBody.Text, hfdOrderRecordID.Value);

進行標准通話:

OHDService.SaveSuggestedItems(eBody.Text, hfdOrderRecordID.Value);

出現問題是因為您嘗試將void分配給某些變量,並且您的方法未返回任何類型。 它與異步調用無關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM