1

ランダムに作成された文字列を使用してテキストファイルを継続的に作成するC#コンソールアプリを作成しました。時間(分単位)はアプリへの入力として指定され、その分数の間実行されて連続テキストファイルが生成されます。生成されるデータの量は、プロセッサの速度やその他の構成によって異なることを理解しています。私のマシンは、1分で合計25mbのデータをテキスト形式で生成できます。

さて、私の質問は、コードを介してアプリへの別の入力として与えられた場合、1分あたりに生成されるデータの速度を制御できますか?

どんな助けでも大歓迎です。

4

4 に答える 4

2

1 分間に 25MB しか生成できず、それが単なるランダムな文字列である場合、別のことを考える必要があります。1 分間にそれよりも桁違いに多くの処理を簡単に実行できるはずです。

しかし、それを制御する限り、私が考えることができる唯一の方法は、タイマーを手動で実行し続け、どのくらいの時間でどれだけ書いているかを追跡し、進行中にレートを自動計算してからスリープすることです必要に応じて、現在の速度と目標の速度を計算したら、適切に計算してください。

完璧ではありませんが、最善の推測を行い、過去のパフォーマンスに基づいて睡眠時間を継続的に調整できるはずです.

于 2012-10-26T21:54:29.353 に答える
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);     

}
于 2012-10-26T22:08:34.527 に答える
0

はい。あなたは2つのことのうちの1つをすることができます。データのmbを制御する場合は、ファイルに書き込まれる文字列の長さを制御するために使用するintをユーザーに渡してもらいます。別のオプションは、スリープを使用することです。ユーザーにスリープ値を渡してもらい、各書き込みの間にその時間スリープすることができます。

于 2012-10-26T21:52:05.957 に答える
0

タイマーを設定して、N 秒ごとにファイルを作成できます。

于 2012-10-26T21:58:12.537 に答える