gpt4 book ai didi

c# - 长异步等待链会导致大量内存消耗吗? (理论上)

转载 作者:太空狗 更新时间:2023-10-29 22:09:00 31 4
gpt4 key购买 nike

查看这段代码:

public async Task<T> ConsumeAsync()
{
await a();
await b();
await c();
await d();
//..
}

假设 a,b,c,d 也有嵌套的异步等待(等等)

Async/await POV - 对于每个 await ,都有一个状态机被保留。

问题(理论):

由于每个状态机都保存在内存中,这是否会导致内存消耗大?
这可能是一个模糊的问题,但如果有很多状态,似乎不可避免地不会想知道所保留的状态机的大小。

最佳答案

As each state machine is kept in memory , could this cause big memory consumption ?

不太可能。每个状态机将在外部占用几十个字节。

所以只有当你有很多时它才重要。嵌套不会真正导致这种情况,但执行 Task[] 的成员可能会。

但这并不是任何其他资源类型的新内容或不同之处。

关于c# - 长异步等待链会导致大量内存消耗吗? (理论上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55781057/

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