gpt4 book ai didi

c# - 保持外部磁盘旋转

转载 作者:行者123 更新时间:2023-11-30 20:51:19 25 4
gpt4 key购买 nike

我的笔记本有一个非常烦人的问题。我有一个带系统的内部 SSD 驱动器和一个主要用于大型游戏的外部旧 HDD 驱动器(在光盘托架中)。问题是,HDD 驱动器在每 10 秒不活动后一直在旋转。无论如何都会发生这种情况 - 尝试了一切(包括 Windows 电源管理),但没有运气 - 磁盘每次都完全忽略所有设置。当尝试在降速后访问新数据时,这会造成难以忍受的延迟,这使得大多数游戏无法玩。这些持续的加速/减速也会缩短磁盘生命周期。

因此,在尝试了一些方法之后,我决定编写一个 C# 应用程序,它将通过逐行读取文件来简单地计算来自下面列表的随机文件中的行数 - 位于外部驱动器上。它是一个 winforms 应用程序,但方法 keepSpinning 是在一个单独的线程中调用的。

    List<string> filesToSpin = new List<string>();
public Form1()
{
filesToSpin.Add(@"D:\book\Generic_User_Guide.pdf");
filesToSpin.Add(@"D:\book\Quick Guide.pdf");
filesToSpin.Add(@"D:\book\pck_ls.pdf");
filesToSpin.Add(@"D:\book\guide_amd64.pdf");
}

private void keepSpinning()
{
while(someKeepAliveVariable)
{
Random r = new Random();
int index = r.Next(filesToSpin.Count);
string spinThis = filesToSpin[index];
int counter = 0;
string line;
Console.WriteLine("Reading file: " + spinThis);
System.IO.StreamReader file =
new System.IO.StreamReader(spinThis);
while ((line = file.ReadLine()) != null)
{
counter++;
}
file.Close();
Console.WriteLine("Read {0} lines.", counter.ToString());
Thread.Sleep(2000);
}
}

嗯。令人惊讶的是,这也行不通。它工作了一段时间,但随后它不断打印读取文件的信息但磁盘停止。我猜驱动器正在以某种方式缓存这些文件。行计数方法也非常占用 CPU。任何关于代码更改的建议都会有所帮助,也期待任何其他解决方案。

最佳答案

写入磁盘上的文件而不是读取。请记得每隔一段时间清除这些文件。

另外,HDD 听起来不太好。

关于c# - 保持外部磁盘旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21811046/

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