gpt4 book ai didi

c# - 如何学习 WriteAllBytes 进度

转载 作者:太空狗 更新时间:2023-10-30 00:07:55 26 4
gpt4 key购买 nike

可以用进度条显示进度吗

File.WriteAllBytes(file, array)

在 C# 中?

最佳答案

没有。

您需要使用循环以 block 的形式写入字节。像下面这样的东西应该让你开始。请注意,这需要在后台线程中运行。如果您使用的是 WinForms,则可以使用 BackgroundWorker

using(var stream = new FileStream(...))
using(var writer = new BinaryWriter(stream)) {
var bytesLeft = array.Length; // assuming array is an array of bytes
var bytesWritten = 0;
while(bytesLeft > 0) {
var chunkSize = Math.Min(64, bytesLeft);
writer.WriteBytes(array, bytesWritten, chunkSize);
bytesWritten += chunkSize;
bytesLeft -= chunkSize;
// notify progressbar (assuming you're using a background worker)
backgroundWorker.ReportProgress(bytesWritten * 100 / array.Length);
}
}

编辑:正如 Patashu 在下面指出的那样,您也可以执行任务并等待。我认为我的方法相当简单,不需要任何额外的线程内容(除了您需要执行操作的一个后台线程之外)。这是传统方式,效果很好。

关于c# - 如何学习 WriteAllBytes 进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15467135/

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