私は2つのスレッド(現在)を持つアプリケーションを持っていますが、Thread.Sleep()関数がうまく動作しないようです。それはスレッドをスリープしますが、それははるかに多くの時間がかかります(例えば、私は5msの間それをスリープ状態にしたい、それは0.3秒以上スリープします)。ここでは、コードは次のとおりです。短時間でThread.Sleepを使用する際の問題
int vlakien = 2;
Thread[] vlakna;
vlakna = new Thread[vlakien];
for (int i = 0; i < vlakien; i++)
{ try { vlakna[i] = new Thread(new ThreadStart(utok)); vlakna[i].Start(); } }
private void utok()
{
//some code
Thread.Sleep(5);
//some code
}
また、私は、関数utokにストップウォッチでそれをスリープ状態にしようと、それはまた、より多くの時間をとります。
Stopwatch SW = new Stopwatch(); SW.Start();
while(SW.ElapsedMilliseconds < 5000) ;
助けてください。
はい、 'Thread.Sleep'は、指定された時間だけ正確にスリープするとは限りません。それを一般的に使用することは、アプリケーションの設計が不適切であるという兆候です。あなたが解決するためにどのような問題を使用しようとしているのかははっきりしていません。失敗した解決策ではなく、*実際の*問題の説明で質問を更新することを検討してください。 –
私はsharppcapとpacketdotnet(DoS攻撃シミュレーション[卒業証書の作業])を持つパケットを大量に送信していると私は、パケットの間に小さな遅延でそれをシミュレートする(遅延なし/ 5msのは.../10msの遅延を遅らせます)。 – matej148