gpt4 book ai didi

c# - 在我的 C# 代码中,计算机会等到输出完成后再继续吗?

转载 作者:太空宇宙 更新时间:2023-11-03 17:13:27 25 4
gpt4 key购买 nike

假设我创建了一个名为“lotsofdata”的长字符串,然后使用以下代码输出其内容:

        string outputFilePath = @"C:\output.txt";
System.IO.File.WriteAllText(outputFilePath, lotsofdata);

SpecialFunction1();
SpecialFunction2();
SpecialFunction3();

我的问题是,在继续运行 SpecialFunction1 之前,计算机是否已将所有内容完全写入 output.txt?或者,它是否启动了输出过程并在输出过程完成之前转到 SpecialFunction1?

我问是因为我想确保在继续执行 SpecialFunction1() 之前已完成写入 output.txt,但我不知道如何确保这一点。

最佳答案

简单的回答是肯定的。

WriteAllText 方法退出之前,基础流被填充并关闭(重要的一点)。

File.WriteAllText Method

Creates a new file, write the contents to the file, and then closes the file. If the target file already exists, it is overwritten.

http://msdn.microsoft.com/en-us/library/system.io.file.writealltext%28v=vs.110%29.aspx

这不是所有文件写入的黄金法则。如果您直接写入 FileStream,则需要确保调用 FlushClose(理想情况下,您应该始终调用 Close anyway)如果你想在继续之前确保文件确实被写入。

FileStream.Close Method

Any data previously written to the buffer is copied to the file before the file stream is closed, so it is not necessary to call Flush before invoking Close. Following a call to Close, any operations on the file stream might raise exceptions. After Close has been called once, it does nothing if called again.

http://msdn.microsoft.com/en-us/library/aa328800%28v=vs.71%29.aspx

此处的关键要点是,任何刷新流的操作都不会退出,直到数据已写入其目的地。

关于c# - 在我的 C# 代码中,计算机会等到输出完成后再继续吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19710210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com