当前位置: 首页 > 知识库问答 >
问题:

异步方法与任务有什么区别?

姜彬郁
2023-03-14

这两种方法的主要区别是什么?

第一个使用任务的方法

public async Task GetTaskDataFromAPI()
        {
            using (var httpClient = new HttpClient())
            {
                using (var response = await httpClient.GetAsync("https://fakeapi/users"))
                {
                    string apiResponse = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(apiResponse);
                }
            }
        }

第二种方法是使用simplevoid

public async void GetVoidDataFromAPI()
        {
            using (var httpClient = new HttpClient())
            {
                using (var response = await httpClient.GetAsync("https://fakeapi/users"))
                {
                    string apiResponse = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(apiResponse);
                }
            }
        }

我在调试这段代码时没有注意到差异。为什么以及何时应该使用这些方法,它们之间的主要区别是什么?


共有1个答案

卢作人
2023-03-14
匿名用户

区别很简单:您不能等待异步无效版本。

如果你调用这个函数,你怎么知道什么时候完成了在它后面排队?在GetVoidDataFromAPI中,只能在继续的同时运行其他代码(即在GetAsync调用期间)。

 类似资料:
  • 本文向大家介绍微任务和宏任务有什么区别?相关面试题,主要包含被问及微任务和宏任务有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 宏任务:script整体代码、setTimeout、setInterval... 微任务:Promise.then、Object.observe、process.nextTick... 运行机制:当前宏任务执行结束 -> 是否有微任务 --> 执行当前微任务 --

  • 问题内容: 可以说我们有以下两个示例代码: 还有这个 所以有人可以告诉我现在有什么区别吗? 问题答案: 这两种不同的方法在 功能上是等效的 。有 可能 是一个非常小的 性能 差异: 在字节码级别,作为方法访问标记中设置的位, 同步方法 公布其同步需求。JVM查找该位标志并进行适当同步。 该 同步块 通过存储在该方法的类文件中的字节码定义的操作序列实现其同步。 因此,同步方法 可能会以 更快的速度执

  • 我正在尝试使用以下代码: 是我在Android应用程序中使用的OAuth2Client的一部分。我得到这个错误: 我会提供一些帮助。 谢谢

  • 执行以下操作有什么不同: vs 在我的情况下,出于某种原因,只有第二种方法有效。第一个似乎永远不会结束。

  • 本文向大家介绍C#异步执行任务的方法,包括了C#异步执行任务的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#异步执行任务的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 我想调用一个方法,从一个AsyncWork,从另一个类,我正在尝试这个 但我得到错误“。你能帮助我吗? 我的扩展活动: