gpt4 book ai didi

c# - 如何在没有等待运算符的情况下获取返回值

转载 作者:太空狗 更新时间:2023-10-29 22:18:24 28 4
gpt4 key购买 nike

我需要在没有 await 运算符的情况下获取返回值(在下面的示例中,我需要在 var y 中获取 "hello world" 而无需 await 运算符)。因为很多地方都引用了一种方法。但是我的要求是该方法对于特定操作是异步执行的。其他任何时候都足以同步执行。

如果我将 await 放在所有引用的地方,该方法需要更改为异步,并且引用的方法也需要更改为异步和等待。有没有可能得到返回值?

请在下面找到示例代码段:

class Program
{
static void Main(string[] args)
{
var x = getString();
}

public static async Task<string> getString()
{
var y = await GetString2();
return y;
}

public static async Task<string> GetString2()
{
return "hello world";
}

}

Here is there any possibility to get "hello world" string in var y without await operator?

最佳答案

您是否正在寻找类似的东西;

var str = GetString2().Result;

Result 阻塞调用线程,直到异步操作完成;它等同于 Wait 方法。 await 异步等待任务完成。

此外,正如@Sir Rufo 和@MistyK 所描述的,您将在可能的异常上得到 AggregateException,因此最好像这样使用 GetAwaiter

var str = GetString2().GetAwaiter().GetResult();

关于c# - 如何在没有等待运算符的情况下获取返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47648245/

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