gpt4 book ai didi

c# - Azure DocumentDB异步请求问题

转载 作者:行者123 更新时间:2023-12-03 04:29:02 25 4
gpt4 key购买 nike

这里我尝试在 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/", "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="482329252924082d26292c272b662b2725" rel="noreferrer noopener nofollow">[email protected]</a>");
return "";
}

我希望方法调用 ExecuteStoredProcedureAsync 以同步方式执行。我是这样做的。

据我了解,这现在应该作为同步方法调用工作,因为我在请求中添加了等待。但事实并非如此。

我确信发生这种情况是因为我对 C# 的 async wait 用法缺乏了解。

我在谷歌上找不到解决这个问题的方法。

我怎样才能使其同步。

最佳答案

改变

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(书)或在线教程。

关于c# - Azure DocumentDB异步请求问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39403875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com