我有以下代码,如果我删除'Task.Delay',它会抛出一个UnhandledException,并显示消息“Unspecified error”。 此异常不会从实际代码中抛出,也不会被任何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
}
这只会在“数据列表”变得足够大时发生。
答案 0 :(得分:0)
_newData和_oldData未初始化(null),因此您可能需要实例化它们以查看是否仍有问题。
此外,您正在使用ObservableCollection,因此我猜您在UI上绑定它们:确保在将项添加到集合之前,您不在另一个线程中(使用Dispatcher)。
答案 1 :(得分:0)
原来是一个完全不相关的问题。
用command toggleScroller pVisible
if the environment is "mobile" then
mobileControlSet sScrollerId, "visible", pVisible
end if
end toggleScroller
替换MenuFlyout
解决了这个问题。我不确定为什么。