首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

如何理解yield return。

2013-03-13 
怎么理解yield return。。。为什么yield return的时候执行位置可以在调用者和被调用者之间来回变?包含yield r

怎么理解yield return。。。
为什么yield return的时候执行位置可以在调用者和被调用者之间来回变?

包含yield return的方法是在同个线程中执行的吗(测试是的,但不知道是不是正确)?如果不是同个线程,那线程同步是系统自己做的吗?如果是同个线程,为什么调用者能随时停掉这个函数执行(通过循环内break或不再调用MoveNext)?

最后。。代码的执行位置变化时,堆栈是怎么变化的?我感觉如果能描述这一点,上面的问题我就都能理解。。。
[解决办法]
肯定是相同的线程了,代码中插入多线程操作的除外,但是每次return的对象肯定是同一个线程在接收。
[解决办法]
用ildasm看看编译好的代码就明白了,
yield return只是一个语法糖。

热点排行