【发布时间】:2014-12-02 14:42:45
【问题描述】:
我在 VS2013 中创建了一个新的 Silverlight 5 项目并添加了 Microsoft Async (1.0.168) NuGet 包。然后我创建一个简单的异步事件处理程序,如下所示:
private async void OnButtonClick(object sender, RoutedEventArgs e)
{
await AsyncMethod();
}
private static async Task AsyncMethod()
{
await TaskEx.Run(() => { });
NormalMethod();
}
private static void NormalMethod()
{
throw new Exception("test exception");
}
当我单击按钮时,出现以下异常:
{System.Exception: test exception
at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
at Microsoft.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at Microsoft.Runtime.CompilerServices.TaskAwaiter.GetResult()
at SilverlightApplication1.MainPage.<OnButtonClick>d__0.MoveNext()}
我想要用于调试目的的关键信息是异常的源方法(即 NormalMethod)。
我已经查看了一些相关问题(链接如下),并认为我了解异步对堆栈跟踪的影响,但我不明白为什么框架不会以保持了解的方式抛出异常源方法。有关如何简单地获取此信息的任何想法/建议?
相关问题:
Missing exception stack trace informations when using Async Targeting Pack in Silverlight 5.0
Is it possible to get a good stack trace with .NET async methods?
【问题讨论】:
标签: c# .net async-await silverlight-5.0 stack-trace