StorageFile 写入后仍处于锁定状态

StorageFile still locked after writing

我有以下代码来编写 CSV 文件:

public static async Task WriteCSVFile(StorageFile file, List<string>[] data)
{
    using (IRandomAccessStream stream = await file.OpenAsync(FileAccessMode.ReadWrite))
    {
        var outputStream = stream.GetOutputStreamAt(0);
        var dataWriter = new DataWriter(outputStream)
        {
            UnicodeEncoding = UnicodeEncoding.Utf8
        };

        for (int x = 0; x < data[0].Count; x++)
        {
            for (int i = 0; i < data.Count(); i++)
            {
                dataWriter.WriteString(data[i][x]);
                dataWriter.WriteString(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator);
            }
            dataWriter.WriteString(Environment.NewLine);
        }

        await dataWriter.StoreAsync();
        await outputStream.FlushAsync();
    }
}

这很好用,但是当我尝试在应用程序仍然 运行 时打开写入的文件时,它被锁定了。

某些东西仍在使用部分之外锁定文件。 您有解决此问题的提示吗?

经过多次变通,我终于在等待任务后通过调用垃圾收集器来修复它。似乎 StorageFile 没有清理自己。

这是新电话:

await SpreadsheetHelper.WriteCSVFile(fileExport, dataExport);
GC.Collect();

感谢您的建议。