c# - WinRT 记录到文件

标签 c# debugging asynchronous file-io windows-runtime

我一直在使用 System.diagnose.Debug 来调试我的大部分应用程序,但现在我需要调试操作系统启动时的行为(我们正在运行后台任务)。这意味着我们没有附加到 VS 调试器,所以我计划做的是将我的调试写入某处的文件。在 winRT 中,所有文件 IO 似乎都是异步的。要使用异步,包含它的方法必须是异步的,这只会在我的调用中冒泡,直到现在所有内容都有一个异步标记(不理想)。有没有办法在不经历所有这些的情况下进行文件调试日志记录?

最佳答案

我建议使用 MetroLog .它有一个 FileStreamingTarget 目标,可以非常轻松地在 WinRT 应用程序上记录内容。

如果您仍想推出自己的产品,可以查看他们的源代码。

编辑

此外,您不必使每个方法都async。 您可以阻止并等待结果,如下所示:

var folder = Package.Current.InstalledLocation.GetFolderAsync(Folder)
                                           .GetAwaiter()
                                           .GetResult();
var file = folder.GetFileAsync(Filename).GetAwaiter().GetResult();
var content = FileIO.ReadTextAsync(file).GetAwaiter().GetResult();

关于c# - WinRT 记录到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19835357/

相关文章:

c# - 表达式树 : Binary operator not defined for types

python - 如何使用 VSCode 和管道命令进行调试

python - 如何在不运行脚本的情况下调试 Python 代码(使用 Eclipse)?

javascript - 在函数内部修改变量后,为什么变量未更改? -异步代码引用

python - openai.error.APIConnectionError : Error communicating with OpenAI

c# - await Task.WhenAll 不等待所有任务完成

c# - 将报表数据导出到 Excel

c# - Ninject -> 扫描程序集以匹配接口(interface)并加载为模块

c# - 在 C# 中使用 void 指针作为模板和函数参数

iOS 应用程序崩溃,因为 -[UIView _setLayerConfig :]: unrecognized selector sent to instance