c# - UWP CreateFileAsync 线程在 Release模式下编译并选中 Compile with .NET Native 工具链时退出

标签 c# .net multithreading uwp .net-native

我有一个 UWP 应用程序,我正在尝试使用以下代码保存配置文件。这适用于未选中并处于 Debug模式的 Compile with .NET Native 工具链。但是,一旦使用 .NET Native 工具链编译被选中,线程就会在尝试创建文件时退出。我该如何解决这个问题?

public async void SaveConfig()
{
    // serialize JSON to a string
    string json = JsonConvert.SerializeObject(uris);

    // write string to a file
    var file = await ApplicationData.Current.LocalFolder.CreateFileAsync("config.json", CreationCollisionOption.ReplaceExisting);
    await FileIO.WriteTextAsync(file, json);
}

最佳答案

问题最有可能出在 async void 方法中,该方法直到最后才等待执行。如果是这种情况,解决方案是更改方法 header

public async Task SaveConfigAsync()

然后像这样调用方法

await SaveConfigAsync();

关于c# - UWP CreateFileAsync 线程在 Release模式下编译并选中 Compile with .NET Native 工具链时退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47273949/

相关文章:

c# - 为什么我的 GTK# 编译二进制文件(使用 MonoDevelop 创建)不能在 Windows 上运行?

c# - TaskCompletionSource.SetResult 的线程安全

c# - C#中的NHibernate不同数据库备份

c# - ServiceStack JsonSerializer 继承时不序列化对象成员

c# - C# 3.0 中隐式类型的好处是什么 >+

.net - XmlDocument.LoadXml() 挂了几分钟

c# - 使用并行库添加到列表时保证线程安全的正确方法

c# 如何在不停止主线程的情况下在 2 个函数调用之间暂停

c# - 自动滚动面板到底部

C# 控制台应用程序通过蓝牙与 Arduino 对话