c# – 我可以指定要等待延续完成后要保留的变量吗?

c# – 我可以指定要等待延续完成后要保留的变量吗?,第1张

概述在异步方法中,任何局部变量都将被存储掉,以便在等待之后的任何线程都可以访问这些值时.有什么办法来表明在等待之后真正需要哪些值? 例如: var firstName = "Karl";var lastName = "Anderson";var street1 = "123 Nowhere Street";var street2 = "Apt 1-A";var city = "Beverly 在异步方法中,任何局部变量都将被存储掉,以便在等待之后的任何线程都可以访问这些值时.有什么办法来表明在等待之后真正需要哪些值?

例如:

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个局部变量,但是在等待之后才使用其中的2个变量,有没有任何属性可以装饰我的变量,以表示我打算在等待完成后只使用firstname和city?

注意:这是一个有创意的例子,但是如果下一个线程完成工作时,如果不需要可能的大型数据块的存储,似乎可能会有好处.

解决方法 你不能. (除了将它们分成单独的方法或将其设置为空的明显解决方案之外).

在这种情况下,编译器未完全优化;它可能会捕获比它需要的更多的变量,并且可能会持续更长的时间.这可能是Microsoft将来会优化的.

总结

以上是内存溢出为你收集整理的c# – 我可以指定要等待延续完成后要保留的变量吗?全部内容,希望文章能够帮你解决c# – 我可以指定要等待延续完成后要保留的变量吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1260746.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存