我有以下方法返回IEnumerable
public IEnumerable<ExternalFilter> GetExternalFilters()
{
if (externalfilters == null)
yield break;
foreach (ExternalFilter filter in externalfilters)
yield return filter;
}
如果我在VS Quickwatch中查看GetExternalFilter,在展开集合时,调试中程序会立即崩溃,而Quickwatch则不会显示任何内容。
使用Quickwatch消息Count()
Function evaluation was aborted.
时的情况与此相同
我需要使用此功能吗?
答案 0 :(得分:1)
只是预感:也许您的枚举externalfilter
只能评估一次? (例如,由于数据来源)。
这意味着只要您尝试使用QuickWatch重新评估GetExternalFilters
的结果,它就会失败。
如果externalfilter
不仅仅是一个可枚举的,而是一个简单的List<T>
,那么你的问题就在于其他地方。
答案 1 :(得分:1)
我相信你的参数externalfilters
不是线程安全的。
您是否从其他线程更新参数?
如果是,请使用lock
更新列表并从中读取。