我收到上述错误:System.AggregateException: One or more errors occurred.
此处有以下代码行:
List<tblDeviceIds> installIDs = KumulosHelper.Functions.Device.GetDeviceIDsOfUser(toUser);
方法“ GetDeviceIdsOfUser”如下所示:
public static List<tblDeviceIds> GetDeviceIDsOfUser(string username)
{
IDictionary<string, string> myDict = new Dictionary<string, string>();
myDict.Add("username", username);
return KumulosGeneral.getTblDeviceIds("getDeviceIDsOfUser", myDict);
}
因此,实际上没有任何幻想。
有时,但仅在上述错误的CERTAIN用户上。因此,即使用户将为“ null”(以他永远不会那样),列表也不会返回任何内容。但是它崩溃了。这本身是我不太了解的事情,所以我所做的是:
List<tblDeviceIds> installIDs = null;
try
{
installIDs = KumulosHelper.Functions.Device.GetDeviceIDsOfUser(toUser);
}
catch
{
installIDs = null;
}
这可以证明是解决方案,但是,它可以尝试,它崩溃,它永远不会陷入困境,它已经死了。 有人愿意解释吗?
谢谢!
O,也许这与在另一个线程上执行此操作有关?该函数将调用所有这些函数:
await Task.Run(() =>
{
Intermediate.SendMessageToUser(toUsername, temp);
});
如您所见,它在异步任务中……但这应该不是问题,对吧?
答案 0 :(得分:1)
收到AggregateException的原因是因为该异常源自Task内部(可能在单独的线程上运行)。要确定原因,请沿行InnerException。
关于捕获未捕获,我的建议是:确保正在使用最新代码。添加跟踪而不是依赖断点。并查看是否从另一个线程引发了内部异常(GetDeviceIDsOfUser是否也在使用异步方法吗?)