【发布时间】:2015-11-09 07:43:04
【问题描述】:
我有一个用 Mono (Xamarin) 开发的多线程 .Net 应用程序,有很多后台异步运行 Tasks
public Task UpdateAsync()
{
return Task.Run (() => {
.....
});
}
我的问题是其中一个任务在某个随机点失败并崩溃并关闭应用程序而没有任何错误并且没有断点触发。我无法查明这个问题,而且真的很难,因为有很多运行异步 Tasks。
有没有办法找到问题所在的方法和线路,或者在那个时候更好地解决问题?
编辑:
我也尝试按照下面的建议注册UnhandledException,但它仍然没有处理任何错误,应用程序只是关闭而没有任何痕迹
AppDomain.CurrentDomain.UnhandledException += (o, e) =>{ Debugger.Break(); }
编辑2: 感谢这里的所有帮助,我终于找到了问题。是否可以通过更改下面的代码来建议一种方法来防止这种情况(使调试器中断,而不是应用程序崩溃)?
public Task StagedUpdateAsync()
{
return Task.Run (() => {
.
.
.
InvokeOnMainThread (() =>
{
// somehow here it was trying to use a null object
// and application crashed
});
});
}
【问题讨论】:
标签: c# multithreading mono xamarin.ios xamarin.android