编辑 :如果您遇到同样的问题(并且您已经习惯于在VS2010下看不到这个问题),请在下方发表评论,以便我知道不只是我 - 但一定要检查韩的答案,以确保没有出现这些情况......
我一直在更新我的应用程序,以便在VS2012 RTM中运行.NET 4.5并注意到我不太了解的内容,这是意外的绿色突出显示的语句(而不是黄色)。
现在我很清楚这是所谓的意味着什么,IDE甚至向我展示了一些解释工具提示。
这是此线程返回时要执行的下一个语句 当前的功能
然而,这个代码绝对没有异步或线程。在这个简单的例子中,我相信你会同意string.ToUpper()
不会在另一个线程中关闭。我可以逐步完成代码。
没有别的事情发生了,我在主线程上,你可以在这里看到。
我上午使用async
和await
以及MVVM-Light
(上述方法是RelayCommand的结果)但即使是代码路径直接关闭事件处理程序,例如PreviewKeyDown
。
如果我创建了一个新的应用程序,我无法复制它 - 即使使用await
,颜色也会按预期变为黄色。
有人知道吗?它开始让我发疯了!
答案 0 :(得分:5)
当语句开头的当前指令指针 时,它为绿色。一些常见原因:
答案 1 :(得分:0)
实际上,我也面临这个问题。这是因为我在横向模式下错过了一些布局组件,因此请检查所有Id和组件以及Run,您将不会收到此错误。
答案 2 :(得分:0)
我了解这是旧帖子,但我想以我的经验回答这个问题。 我最近在一个WCF应用程序中遇到了相同的问题。调试并仔细查看服务日志后,我发现我的代码给出了此错误,因为服务达到了代码执行的最大允许限制,并且一旦服务达到最大允许的时间限制,便试图卸载当前调试会话。
绿色语句错误 :这是线程返回时要执行的下一条语句
因此,为避免此问题,您可以尝试查找任何可能的代码(代码/服务超时或任何其他代码块),这些代码试图卸载当前正在执行的代码上下文并尝试对其进行修复,此外,@ Hans给出的原始解释是对于解决此问题仍然非常重要。