Mai*_*aik 67 c# visual-studio-debugging
调试时我突然遇到一个奇怪的错误.到目前为止,监视窗口中的变量已正确显示.现在我总是在监视窗口中收到错误消息:
功能评估需要运行所有线程
我不能再检查任何变量了.我没有明确地使用线程.我该怎么办才能让它再次运作?
我在某些论坛中已经禁用了调试器的选项窗口中的函数:"启用属性评估和其他隐式函数调用".但没有成功,那我得到错误:
错误隐式函数评估由用户禁用
MUG*_*G4N 82
来自msdn论坛:
这本身并不是错误,而是调试器的更多功能.某些属性需要执行代码才能读取属性,但如果这需要跨线程交互,则其他线程也可能必须运行.调试器不会自动执行此操作,但当然可以在您的许可下执行此操作.只需单击小评估图标,它将运行您的代码并评估属性.
有关此行为的更多详细信息,请查看此优秀文章
vap*_*guy 18
我只是尝试使用Entity Framework从名为"AGENCY"的表中获取项目时遇到了这个问题:
var agencies = db.AGENCY.OrderBy(e => e.FULLNAME);
Run Code Online (Sandbox Code Playgroud)
在调试模式下将鼠标悬停在代理上,单击以展开选项,然后单击结果将给出可怕的"功能评估需要所有线程运行",并在末尾显示"请勿输入"图标,在该图标上单击不执行任何操作.
2种可能的解决方
最后添加.ToList()
:
var agencies = db.AGENCY_TABLE.OrderBy(e => e.FULLNAME).ToList();
List<AGENCY_TABLE> agencies = db.AGENCY_TABLE.OrderBy(e => e.FULLNAME).ToList();
归功于Hp93,帮助我找到这个解决方案.在上MUG4N的答案在我发现这个解决办法的意见,同时也提到了努力.Any()
,而不是.ToList()
,但是这给布尔代替<T>
,就像<AGENCY>
是,所以它可能不会帮助.
解决方法 - 在调试选项中尝试不同的路径.我发现我可以单击"非公共成员">"_internalQuery">"ObjectQuery">"结果视图"并以这种方式获取我的值.
MUG4N确实提供了正确的答案,但是,如果将鼠标悬停在调试中的代码行上,则可能会看到类似以下的内容。如果是这样,请点击下图中突出显示的小重新评估图标...
注意:我是通过固定来获得此图像的,通常重新评估的图标位于窗口的中间,而不是位于左手栏的下方。
归档时间: |
|
查看次数: |
62958 次 |
最近记录: |