在C#中以特定速度生成随机文本文件

时间:2012-10-26 21:45:52

标签: c# performance random generator rate

我创建了一个C#控制台应用程序,它不断创建带有随机创建字符串的文本文件。时间(分钟)作为应用程序的输入给出,并运行该分钟数以生成连续的文本文件。据我所知,生成的数据量将根据处理器速度和其他配置而有所不同。我的机器能够在1分钟内以文本格式生成总共25 MB的数据。

现在,我的问题是,如果通过我的代码作为应用程序的另一个输入提供,我可以控制每分钟生成的数据速率吗?

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:2)

如果你只能在一分钟内生成25MB,并且它只是随机字符串,那么你还有其他需要考虑的事情 - 你应该能够轻松地完成比一分钟更多的数量级。

但就控制而言,只有我能想到的方法是手动保持计时器运行,并记录你写了多少时间,以便在你去的时候自动计算你的费率 - 一旦你计算了你的速度,你需要多快的速度,然后根据需要适当地睡觉。

它不会是完美的,但你应该能够做出最好的猜测,并根据过去的表现不断调整你的睡眠时间。

答案 1 :(得分:1)

var start = DateTime.Now;
int bytesSaved=0;
double desiredSpeed = (25*1024*1024)/60;

while(true)
{
  int latency = bytesSaved/(DateTime.Now-start).TotalSeconds - desiredSpeed;
  if(latency>0) 
    {          
      Thread.Sleep(100);
      continue;
    }

  bytesSaved +=SaveDataChunk(latency);     

}

答案 2 :(得分:0)

是。你可以做两件事之一;如果要控制数据的mb,则让用户传入一个int,用于控制写入文件的字符串的长度。另一种选择是使用睡眠。您可以让用户传入睡眠值,然后您可以在每次写入之间休眠一段时间。

答案 3 :(得分:0)

您可以设置计时器并每隔N秒创建一个文件。