gpt4 book ai didi

c# - 我可以指定在 await continuation 完成后我希望保留哪些变量吗?

转载 作者:可可西里 更新时间:2023-11-01 09:08:58 25 4
gpt4 key购买 nike

async 方法中,任何局部变量都被存储起来,以便在 await 之后继续执行的任何线程都可以访问这些值。在 await 之后有什么方法可以指示真正需要哪些值?

例如:

var firstName = "Karl";
var lastName = "Anderson";
var street1 = "123 Nowhere Street";
var street2 = "Apt 1-A";
var city = "Beverly Hills";
var state = "California";
var zip = "90210";

await MyTaskHere();

Console.WriteLine(firstName);
Console.WriteLine(city);

所以我已经声明了 7 个局部变量,但在 await 之后只使用了其中的 2 个,是否有任何属性可以用来装饰我的变量以表明我打算只使用 firstName cityawait 完成后?

注意:这是一个人为的示例,但如果在下一个线程完成工作时不需要这些数据 block ,那么能够限制存储这些数据 block 似乎是有益的。

最佳答案

不,你不能。 (除了将它们拆分为单独的方法或将它们设置为 null 的明显解决方案之外)。

编译器在这种情况下没有完全优化;它可能捕获比它需要的更多的变量,并且可能比必要的更长时间地保留它们。这可能是微软 future 会优化的东西。

关于c# - 我可以指定在 await continuation 完成后我希望保留哪些变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18245949/

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