Thread.Sleep();
使用すべきでないと記載されているのをよく目にしますが、なぜそうなのか理解できません。場合はThread.Sleep();
、トラブルを引き起こす可能性があり、安全であるのと同じ結果に任意の代替ソリューションがありますか?
例えば。
while(true)
{
doSomework();
i++;
Thread.Sleep(5000);
}
別のものは:
while (true)
{
string[] images = Directory.GetFiles(@"C:\Dir", "*.png");
foreach (string image in images)
{
this.Invoke(() => this.Enabled = true);
pictureBox1.Image = new Bitmap(image);
Thread.Sleep(1000);
}
}
goto:
すなわちおそらくあなたの問題に対するより良い解決策があるでしょうSleep
。
goto
はありません。これは、デザインの匂いではなくコードの匂いのようです。goto
コードにsを挿入するコンパイラに問題はありません。コンピュータが混乱することはありません。しかしThread.Sleep
、まったく同じではありません。コンパイラはその呼び出しを挿入せず、他の悪影響があります。しかし、はい、ほとんどの場合、より良い解決策が確かに正しいので、それを使用することは間違っているという一般的な感情。
sleep()
コード(またはテスト)を挿入するたびに子犬が死ぬ