簡體   English   中英

Azure DocumentDB異步請求問題

[英]Azure DocumentDB async requests issue

在這里,我試圖在c#中執行azure documentdb存儲過程。

    static string EndpointUri = "https://asdf.documents.azure.com:443/";
    static string PrimaryKey = "X";
    static DocumentClient client = new DocumentClient(new Uri(EndpointUri), PrimaryKey);

    static void Main(string[] args)
    {
        var x = doit();
        Read();
    }
    public static async Task<string> doit()
    {

        StoredProcedureResponse<string> sprocResponse = await client.ExecuteStoredProcedureAsync<string>("/dbs/eew/colls/fff/sprocs/ggg/", "kamal@enadoc.com");
        return "";
    }

我希望方法調用ExecuteStoredProcedureAsync可以執行同步方法。 我就是這樣做的。

從我的理解,這應該作為一個同步方法調用,因為我添加等待請求。 但它不會那樣工作。

我確信這種情況正在發生,因為我對異步等待使用c#缺乏了解。

我無法在谷歌上找到解決這個問題的方法。

我怎樣才能使這個同步。

更改

var x = doit();

 var x = doit().Result;

注意; 這將在這個簡單的控制台應用程序中正常工作,但可能會導致實際應用程序死鎖。 如果你必須在真實的​​應用程序中同步它,你應該做這樣的事情;

var x = Task.Run(() => doit()).Result;

解釋這個問題超出了我能夠很容易地回答的問題,對不起。 如果您可以訪問Pluralsight,這是Jon Skeet的一個很好的解釋: https ://www.pluralsight.com/courses/skeet-async。 否則,C#in A Nutshell(書中)或在線教程。

暫無
暫無

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

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