gpt4 book ai didi

c# - 异步方法是否必须使用 "await"关键字?

转载 作者:太空宇宙 更新时间:2023-11-03 15:07:20 25 4
gpt4 key购买 nike

<分区>

我有以下方法:

async Task A()
{
HttpClient client = new HttpClient();
string response = await client.GetStringAsync("http://msdn.microsoft.com");
}

async Task B()
{
HttpClient client = new HttpClient();
string response = await client.GetStringAsync("http://google.com");
}

即调用远程 api,处理响应,不返回任何内容。

我将从一个通用方法中这样调用它:

protected void Page_Load(object sender, EventArgs e)
{
A();
B();

// Do further task after this which is not dependent on response of A or B
}

编译器对 A 和 B 方法发出以下警告:

Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call.

enter image description here

我不需要 A 或 B 方法的任何响应,所以我想省略 A() 和 B() 前面的“await”关键字,因为我想在 A 和 B 调用后执行代码在不等待 A 或 B 响应的情况下写下评论“//在此之后执行不依赖于 A 或 B 响应的进一步任务”。

我可以忽略编译器警告吗?

我是否滥用了 API?

我无法删除 A 和 B 方法上的异步运算符,因为 HttpClient.GetStringAsync 需要它。

编辑:

我去了这个链接 https://softwareengineering.stackexchange.com/questions/331353/does-omitting-await-keyword-once-in-the-call-stack-break-the-asynchronous-behavi

并发现了以下评论:

“当您不等待异步方法时,它等同于调用 Task.Run(()=>A())。”

这是真的吗

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