| ■23524 / ) |
Thread.Sleepについて |
□投稿者/ ともいま (1回)-(2008/08/18(Mon) 11:46:23)
|
分類:[VB.NET/VB2005]
開発環境:WinXP Pro、使用言語:VB.NET2003
複数スレッドを作成し、各々のスレッドで無限ループにThread.Sleepを用いて 定期的に処理させるシステムを構築したのですが、 とあるシステムで2秒周期で処理させるため、 Thread.Sleep(2000)を設定しておいたのですが、 このSleep部分で2秒で制御が返らない場合が稀に発生しています。 このSleep部分の前後にタイムスタンプを残す仕組みを作って 実行したところ、ほとんどが2秒なのですが、稀に4秒とか5秒というのがありました。 どうも、原因を調べると他のスレッドの状態が影響しているようです。 このシステムでは、他のスレッドでエラーが発生したタイミングでたまに 発生しているようですが。
このスレッドの優先度をHIGHESTにしても変わりませんでした。
Thread.Sleepは指定した秒数で必ず制御が戻ると思っていたのですが、 必ずしもそうではないのでしょうか? また、必ず指定した秒数で制御を戻す方法はないのでしょうか?
|
|