![](/img/trans.png)
[英]Azure Service-Fabric and DocumentDB message serialization issue
[英]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.