UWP 为什么我可以debug.StepOver,但不能Debug.Run

UWP Why can I debug.StepOver, but not Debug.Run

我有一小段代码在 'normal debug' 中挂起执行 "var folder =..."

async Task<StorageFolder> GetAssetsFolderAsync()
    {
        var folder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync(@"Assets");
        return folder;
    }

我放置了两个断点...

如果我在第一个中断,我可以 Debug.StepOver 到行 "return folder"。如果我使用 debug.Run 代替,则会消失并且不会到达下一个断点。该方法是从 MainPage_Loaded 调用的。知道如何解决这个问题。更奇怪的是,它过去可以毫无问题地工作,我还没有改变那些 lines.ie 很多其他的)

我相信你遇到了一个异常,visual studio 会默默地为你处理。

尝试打开异常设置并确保它在遇到任何异常时停止。

  1. 调试 -> Windows -> 异常设置
  2. 标记所有 CLR 异常

编辑: 还尝试捕获 AggregateException,这些可以在处理 TPL 时包装真正的异常。

经过长时间的搜索,我从斯基特先生和克利里先生那里找到了答案。我阻塞了 UI 线程。

这里有更详细的解释:

Call to await GetFileAsync() never returns and app hangs in WinRT app

我不认为我会想到它。已修复:

public async static Task<bool> StaticInitializeAsync()
    {
        recordingsFolder = await getRecordingsFolderAsync();
        AssetsFolder = await Statics.InstallationFolder.GetFolderAsync(@"Assets");
        defaultWavFile = await AssetsFolder.GetFileAsync("Default.wav");
        return true;
    }