【发布时间】:2016-02-23 11:24:48
【问题描述】:
我有以下代码,如果我删除“Task.Delay”,它会抛出带有消息“未指定错误”的 UnhandledException。 此异常不会从实际代码中抛出,也不会被任何 try catch 捕获。
ViewModel Code:
ObservableCollection<Data> _newData;
ObservableCollection<Data> _oldData;
List<Data> dataList = await Task.Run(() => GetData());
foreach(var dataItem in dataList)
{
if(dataItem.Type == DataType.New)
_newData.Add(dataItem);
else
_oldData.Add(dataItem);
await Task.Delay(1); // Comment out and code fails
}
这只会在“dataList”变得足够大时发生。
【问题讨论】:
-
你初始化了 _oldData 和 _newData 集合了吗?
-
是的。它不是代码中的空引用错误。将所有内容包装在 try catch all 中不起作用或捕获任何内容。
-
你能提供一个堆栈跟踪吗?
wpf、windows-phone-8.1和winrt-async是否会发生这种情况? -
未处理的异常中没有堆栈跟踪或其他信息。它发生在 Windows Phone 8.1 RT 中。异常出现在 App.UnhandledExceptionHandler 中。我的代码中没有 try catch 捕获它。
-
你有绑定到你的集合的事件处理程序吗?该错误可能来自一个事件处理程序试图在添加一些新项目时更改集合...
标签: wpf windows-phone-8.1 winrt-async